Convolving a voice in a telephone call to a sound localization point that is familiar to a listener

ABSTRACT

A method convolves a voice in a telephone call as binaural sound to an external sound localization point (SLP) that is familiar to a user. The method analyzes SLPs in prior telephone calls where voices in the prior telephone calls externally localized as binaural sound to the user and determines, based on the analysis, a SLP that is familiar to the user where the user previously localized the voices in the prior telephone calls.

BACKGROUND

Three-dimensional (3D) sound localization offers people a wealth of newtechnological avenues to not merely communicate with each other but alsoto communicate with electronic devices, software programs, andprocesses.

As this technology develops, challenges will arise with regard to howsound localization integrates into the modern era. Example embodimentsoffer solutions to some of these challenges and assist in providingtechnological advancements in methods and apparatus using 3D soundlocalization.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a computer system or electronic system that convolves audioinput in accordance with an example embodiment.

FIG. 2 is an audio diarization system in accordance with an exampleembodiment.

FIG. 3 is a method to localize multiple different sounds to multipledifferent locations to a user in accordance with an example embodiment.

FIG. 4 is a method to convolve segments of an audio input in accordancewith an example embodiment.

FIG. 5 is a method to move voices during a telephone call frominternally localizing to externally localizing in accordance with anexample embodiment.

FIG. 6 is a method to designate a sound localization point (SLP) to atelephone call in accordance with an example embodiment.

FIG. 7 is a method to convolve segments of an audio input in accordancewith an example embodiment.

FIG. 8 is a method to select a location where to place sound in an audioinput in accordance with an example embodiment.

FIG. 9 is a sound localization point (SLP) selector that determineswhere to localize sounds in accordance with an example embodiment.

FIG. 10A is a table of example historic audio information for a user inaccordance with an example embodiment.

FIG. 10B is a table of example user preferences of a user for localizinga sound source of telephone calls in accordance with an exampleembodiment.

FIG. 10C is a table of example user preferences of a user for localizingmiscellaneous sound sources in accordance with an example embodiment.

FIG. 11 is a method to localize different types of sounds to users inaccordance with an example embodiment.

FIG. 12 is a method to assign head related transfer functions (HRTFs) tosounds in accordance with an example embodiment.

FIG. 13 is a computer system or electronic system in accordance with anexample embodiment.

FIG. 14 is another computer system or electronic system in accordancewith an example embodiment.

FIG. 15 is a SLP selector in an electronic system in accordance with anexample embodiment.

FIG. 16 is a method to designate a sound localization point (SLP) to atelephone call in accordance with an example embodiment.

SUMMARY

One example embodiment convolves speech and/or non-speech in an audioinput to localize sounds to different locations for a user. An audiodiarization system segments the audio input into speech and non-speechsegments. These segments are convolved with one or more head relatedtransfer functions (HRTFs) so the sounds localize to different soundlocalization points (SLPs) for the user.

Other example embodiments are discussed herein.

DETAILED DESCRIPTION

Example embodiments are apparatus and methods that relate to thediarization and convolution of sound.

One example embodiment processes an audio input through an audiodiarization system that performs one or more of detecting, segmenting,and clustering the audio input. An audio convolver convolves output fromthe audio diarization system so speech and/or non-speech segments of theaudio input localize to different sound localization points to a user.The user can be provided with binaural sound with sound segments thatlocalize to different sound localization points (SLPs) that areexternally located around the user. One or more of these SLPs can alsobe located inside the head of the user.

By way of introduction, sound localization refers to a person's abilityto determine a location or an origin of sound in direction and distance(though the human auditory system has limits in determining directionand distances to some sounds). Sound localization also refers to methodsto use artificial or computer generated auditory cues to generate anorigin of sound in a virtual three-dimensional (3D) space. Binauralsound (or 3D sound) and some forms of stereo sound provide a listenerwith the ability to localize sound; though binaural sound generallyprovides a listener with a superior ability to localize sounds in 3Dspace. In many instances, a person listening to binaural sound throughan electronic device (such as earphones or speakers with cross-talkcancellation) can determine a location from where the sound originateseven when this location is away from the person.

Binaural sound can be manufactured or recorded. When binaural sound isrecorded, two microphones are placed in or near human ears or placed inears of a dummy head. When this binaural recording is played back (e.g.,through headphones or earphones), audio cues in the recorded sound causethe listener to perceive an audio representation of the 3D space wherethe recording was made. Binaural sound is quite realistic, and thelistener can localize sources of individual sounds with a high degree ofaccuracy.

Binaural sound typically delivers two types of localization cues:temporal cues and spectral cues. Temporal cues arise from an interauraltime difference (ITD) due to the distance between the ears. Spectralcues arise from an interaural level difference (ILD) or interauralintensity difference (IID) due to shadowing of sound around the head.

A person hearing the spatial auditory cues can localize sound orestimate a location of a source of the sound. In some instances, alistener can externalize and localize a sound source in binaural soundto a point and experience the sound as indistinguishable from areal-world sound source occurring in his physical environment.

Although stereo sound offers some degree of sound localization, stereosound and binaural sound are different. As explained in WIKIPEDIA, theterm “binaural sound” and “stereo sound” are frequently confused assynonyms. Conventional stereo recordings do not factor in natural earspacing or “head shadow” of the head and ears since these things happennaturally as a person listens and experiences his or her own ITDs(interaural time differences) and ILDs (interaural level differences).As a general rule, binaural sound accommodates for one or more ITDs,ILDs, natural ear spacing, head shadow, and room impulse responses. Morespecifically, sound signals are modified as they travel from theoriginal source and interact with the human anatomy and surroundingenvironment. These modifications encode the location of the originalsource and can be captured as an impulse response. The impulse responsefor a human in a free-field environment (without modification due to aroom environment) is called a head-related impulse response (HRIR), andit represents impulse responses from a sound source to two ears. A HRTFis a Fourier transform of a HRIR.

Binaural sound spatialization can be reproduced to a listener usingheadphones or speakers, such as with dipole stereo (e.g., multiplespeakers that execute crosstalk cancellation). Generally, binauralplayback on earphones or a specially designed stereo system provides thelistener with a sound that spatially exceeds normally recorded stereosound since the binaural sound more accurately reproduces the naturalsound a user hears. Binaural sound can convincingly reproduce thelocation of sound behind, ahead, above, or around the listener. Further,binaural sound can be recorded (such as recorded with two microphonesplaced in ears of a person or dummy head) or machine made or modifiedwith a computer program.

Sound can also be processed and moved by adjusting or changing ITDs andILDs. A sound can also be localized or moved by convolution with a HRIRor HRTF (e.g., a HRTF pair of a listener). For example, mono sound canbe convolved with a person's HRIRs or HRTFs to generate binaural soundthat is individualized for the person. The HRIRs describe how to alterthe sound source before the sound is provided to the ears of thelistener. For example, convolving with HRTFs can join a sound to aposition around a listener, and convolving with other impulse responses(e.g. Room Impulse Responses) can join a sound to a type of room orplace.

Sound localization through the use of electronic devices offers people awealth of new technological avenues to not merely communicate with eachother but also to communicate with electronic devices, softwareprograms, and processes. This technology has broad applicability inaugmented reality (AR), virtual reality (VR), audio augmented reality(AAR), telecommunications and communications, entertainment, tools andservices for security, medicine, disabled persons, recording industries,education, natural language interfaces, and many other sectors.

As this technology develops, many challenges exist with regard to howsound localization through electronic devices integrates into the modernera. The implementation of binaural sound with electronic devicescreates technical problems when used in the field of telecommunications.Some of these problems are addressed and solved with exampleembodiments.

By way of example, multiple different voices or speakers can be presentin an audio input, such as multiple voices in a telephone call, ateleconference call, an archived radio or television broadcast, a movieor video, a computer game, or other application or situation. When theaudio input is convolved with a single pair of HRTFs, then the entireaudio input will externally localize to a single sound localizationpoint (SLP) to the listener, creating a problem since the sound is notnatural. For example, if Alice localizes to a SLP the sound of aconference call with Bob and Charlie, then both Bob's voice andCharlie's voice will localize to one location. Alice can become confusedas to who is speaking because, unlike a real life situation, both voicesemanate from one location. Example embodiments solve this technicalproblem. For example, different voices or different speakers areconvolved to different locations around the listener.

Example embodiments solve other technical problems as well. Consider anexample in which audio input includes both music and one or more voices.This situation creates a problem since the music and the voice or voicesappear to the listener to originate from a single location. Exampleembodiments solve this technical problem. For example, the music isconvolved to localize to one or more SLPs (e.g., left and right audiochannel SLPs), and the voice or voices are convolved to localize toanother SLP.

Example embodiments divide or segment an audio input into differentsounds or sound segments, such as dividing the audio input intodifferent speech segments (e.g., one segment for each speaker or eachvoice) and different non-speech segments (e.g., one segment for music,one segment for background noise, etc.). Each of these segments can beconvolved with a different pair of transfer functions (such as HRTFs) orimpulse responses (such as HRIRs). The different sounds can bepositioned around the listener to provide a richer, fuller, morerealistic soundscape.

In an example embodiment, different segments can be convolved withdifferent RIRs or BRIRs, and RIRs or BRIRs can be removed from somesegments and remain unaltered on other segments. For example, a user maywish to convolve segments that include dry anechoic machine-made speechof an IPA or alert sounds with a BRIR consistent with the user'sphysical location so that the voices of the IPA and alerts sound morephysical or realistic. The user may wish to leave the segment thatincludes the alerts unchanged so that the alert's sound color contrastswith the other sounds in his environment. This contrast can make thealerts more noticeable.

Consider an example in which a motor repairman includes his IPA on atelephone call with a client because his IPA is an expert in electricmotor repair. The outgoing sound of his IPA is convolved with the RIR ofthe repairman's office so that his client is not distracted by theanechoic voice of the IPA.

Consider an example in which a user is on a multi-segment call with twofriends in which one friend's voice has a moderate amount ofreverberation and one friend's voice has almost no reverberation. Thesound localization system (SLS) executes a rule-set to externallylocalize lower-reverberation segments closer to the user, to externallylocalize segments with higher reverberation farther from the user, andto internally localize segments that originate from known locations forwhich the user has access to RIRs in order to minimize reverberation.

Another technical problem with binaural sound is determining where tolocalize sounds for the listener. For example, should a sound beinternally localized to the listener or externally localized to thelistener? If a sound is externally localized, where should the sound beplaced with respect to the listener? How are these determinations made?What if different listeners want to localize a particular sound todifferent SLPs? Additionally, listeners presented with many differentsounds and sound types from many different sources throughout the daymay desire a familiar, consistent, and/or organized audio experiencewith respect to sound placement according to the sound type, the user'slocation, activity, preferences, and other factors.

These questions show but a few examples of the technical problems thatexample embodiments address in the field of telecommunications and othertechnical fields concerned with sound localization. Example embodimentsoffer solutions to many of these challenges and assist in providingtechnological advancements in methods and apparatus using electronicdevices and sound localization.

An example embodiment determines where to localize sound for a listener.Consider an example embodiment that provides many binaural sounds frommany sources. The example embodiment selects one or more SLPs that arefamiliar or expected to the listener without requiring the listener toselect these SLPs. For example, a SLS for the listener determines thatthe listener wants music to localize to an azimuth of +30°, voices for atelephone call to localize to an azimuth of −30°, warnings or soundsfrom appliances to localize to a single or same location behind thelistener, voices of an intelligent user agent to localize above thelistener or inside the head of the listener, etc.

FIG. 1 is a computer system or electronic system 100 that convolvesaudio input in accordance with an example embodiment. The systemincludes an audio diarization system 110, a sound localization point(SLP) selector 120, memory 130, and an audio convolver 140 (shown by wayof example as a digital signal processor or DSP).

The system 100 obtains, receives, or retrieves audio input 150 that isprovided to the audio diarization system 110. By way of example, theaudio input includes, but is not limited to, monaural sound, stereosound, binaural sound, streaming audio, archived audio (such as radio ortelevision archived broadcasts), telephone calls, movie or video sounds,computer game sounds, software application sounds, live audio capturedor supplied by a user or computer program or electronic device, andother sources of audio input.

The audio diarization system 110 executes speaker diarization on theaudio input. Speaker diarization (aka, speaker diarisation) is a processthat divides audio input into segments according to speaker identity.For audio input with voices, speaker diarization combines speakersegmentation and speaker clustering to determine who spoke, when theyspoke, and when they did not speak.

Speaker diarization can determine general speaker identity, such aslabeling a voice in the audio input as “Speaker 1” and determining whenthe speaker speaks. Speaker diarization can also determine more specificinformation with regard to speaker identity, such as identifying that avoice in audio input belongs to a known voice (such as Albert Einstein)and further determining when Albert Einstein speaks in the audio input.

Speaker diarization can be actioned alone or with one or more otheraudio systems, such as combining an audio diarization system with aspeaker recognition system to verify, authenticate, or identify aperson. As another example, the audio diarization system executes withan acoustic fingerprint system to verify, authenticate, or identify asound.

In an example embodiment, the audio diarization system 110 receives orobtains the audio input 150 and analyzes this audio input to identifywho spoke when (for speech segments) and/or what sounds occurred when(for non-speech segments). In order to perform this identification, theaudio diarization system 110 divides the audio input into speechsegments and non-speech segments, such as one or more of backgroundnoise, silence, music, and other non-speech sounds. For example, forspeaking events or speech segments, the audio diarization system 110determines when speech originates from an established or known speaker,a different, or a new speaker and determines speaker boundaries, such aswhen a speaker begins to talk, when a speaker stops talking, and when aspeaker changes. The audio diarization system can also locate anddetermine boundaries for the non-speaking events or non-speech segments,such as determining when music starts and stops, silence starts andstops, noise starts and stops, etc.

The audio diarization system 110 can operate with little or noinformation or knowledge regarding the content of the audio input 150,such as executing without knowing an identity of speakers or voices orother sounds in the audio input, a number of different speakers orvoices or sounds in the audio input, a duration or structure of theaudio input, and other information.

The audio diarization system 110 can also operate with information orknowledge regarding the content of the audio input 150. For example, theaudio diarization system is provided with or determines a number ofspeakers, such as a known number of speakers in a radio or televisionarchive broadcast. As another example, the audio diarization system isprovided with audio samples, voiceprints/voice identifications (IDs) orvoice models of the speakers, or data that indicates cues or time-codesand durations for speaking or sound events, and speaker labels oridentities of these speakers. This information assists the audiodiarization system in identifying speakers in the audio input. Otherinformation can be provided to assist in segmentation, clustering, andother tasks.

The audio diarization system 110 can label speakers and sounds,including when an identity of a speaker or sound is known or not known.For example, in a teleconference call, the audio diarization systemlabels unknown speakers with a label, such as Speaker 1, Speaker 2,Speaker 3, etc. Other sound labels can also be applied, such as thoseconsistent with speaker diarization protocols.

The audio diarization system 110 can execute one or more different audiodiarization modeling techniques. These modeling techniques include, butare not limited to, a Gaussian mixture model (GMM), Hidden Markov Model(HMM), Bayesian information criterion (BIC), Bayesian estimation andmachine learning methods, Variational Bayes, Eigenvoice modeling, crosslikelihood ratio (CLR) criterion, et al.

By way of example, one technique (known as the bottom-up technique)executes segmentation and then clustering. This technique splits theaudio into successive clusters and merges redundant clusters until eachcluster corresponds to a speaker. For example, the technique divides theaudio input into a number of segments and then iteratively choosesclusters that closely match to repeatedly reduce an overall number ofclusters. Clusters can be modeled with GMM in which a distance metricidentifies closest clusters. The process repeats until each speaker hasone cluster.

As another example, one technique (known as the top-down technique)models the audio input with a first speaker model and then successivelyadds more speaker models for each different speaker. A single clusterfor the audio input is iteratively divided until a number of clustersrepresent the number of speakers.

Consider an example in which the audio diarization system 110 executesor processes temporal distance metrics to determine speaker changelocations, such as temporal locations when one speaker stops speakingand another begins speaking. For a particular location in the audioinput, the system determines a statistical similarity of the audio oneach side of this location and then determines segment boundaries basedon a distance curve for this statistical similarity. Consider anotherexample in which the audio diarization system executes or processesheuristic rules to determine the speaker change locations.

In an example embodiment, an audio diarization system that receivesbinaural sound as input can examine binaural audial cues to helpdetermine segments according to sound type and in addition can createsegments according to other criteria in addition to sound type such asspatial information. For example, a segment can include specifically thesounds determined to originate from a distance greater than threemeters. A segment composed of distant source sounds can organize manydistant sounds together into one or more segments. For example, asegment composed of distant sounds can be localized to, for example, asingle point to lessen the user's distraction by the distant sounds. Asanother example, one segment can include specifically the soundsoccurring at points relative to the listener with azimuth coordinatesgreater than +90° and less than +270°. The segment can be localizedabove the head of the user so that the user knows that sound he mighthear behind him is a real sound from his environment.

The SLP selector 120 selects, assigns, provides, and/or determines asound localization point for each of the segments or clusters assembledby the audio diarization system 110. These points can be externallocations to a listener (such as sound perceived as originating from alocation that is proximate to but away from the listener) and internallocations to the listener (such as sound perceived as originating from alocation inside the head of a listener).

The SLP selector can assign one or more SLPs to different speakers andsounds. For example, each speaker and/or each sound is assigned a uniqueSLP. As another example, two speakers and/or sounds are assigned asingle SLP. As another example, one speaker and another sound areassigned a single SLP, and another speaker is assigned a different SLP.As another example, one speaker is assigned a unique SLP, and anotherspeaker is assigned two unique SLPs.

By way of example, sound can be convolved with a pair of HRTFs. A HRTFis a function of frequency (f) and three spatial variables, by way ofexample (r, θ, ϕ) in a spherical coordinate system. Here, r is thedistance from a listener to a recording point where the sound isrecorded, or a distance from a listening point where the sound is heardto an origination or generation point of the sound; θ (theta) is theazimuth angle between a forward-facing user at the recording orlistening point and the direction of the origination or generation pointof the sound relative to the user; and ϕ (phi) is the polar angle,elevation, or elevation angle between a forward-facing user at therecording or listening point and the direction of the origination orgeneration point of the sound relative to the user. By way of example,the value of (r) can be a distance (such as a numeric value representinga number of meters) from an origin of sound to a recording point (e.g.,when the sound is recorded with microphones) or a distance from a SLP toa listener's head (e.g., when the sound is generated with a computerprogram or otherwise provided to a listener).

When the distance (r) is greater than or equal to about one meter (1 m)as measured from the capture point (e.g., the head of the person) to thesound source, the sound attenuates inversely with the distance. Onemeter or thereabout defines a practical boundary between near field andfar field distances and corresponding HRTFs. A “near field” distance isone measured at about one meter or less; whereas a “far field” distanceis one measured at about one meter or more. Example embodiments can beimplemented with near field and far field distances.

In an example embodiment, a SLP represents a location where the personwill perceive an origin of the sound. For an external localization, theSLP is away from the person (e.g., the SLP is away from but proximate tothe person or away from but not proximate to the person). The SLP canalso be located inside the head of the person.

In an example embodiment, a location of the SLP can correspond to thecoordinates of one or more pairs of HRTFs. For example, coordinates ofor within a SLP zone match or approximate the coordinates of a HRTF.Consider an example in which the coordinates for a pair of HRTFs are (r,θ, ϕ) and are provided as (1.2 meters, 35°, 10°). A corresponding SLPzone for the person thus includes (r, θ, ϕ), provided as (1.2 meters,35°, 10°). In other words, the person will localize the sound asoccurring 1.2 meters from his or her face at an azimuth angle of 35° andat an elevation angle of 10° taken with respect to a forward lookingdirection of the person.

Consider an example in which the audio diarization system 110 segments atelevision evening news report into three different segments: a voice ofa news anchor, a voice of a reporter reporting at a scene of a crime,and background sound recorded at the scene of the crime. The SLPselector 120 assigns SLPs to the three different segments as follows:The voice of the news anchor is assigned to SLP 1 that is locatedproximate to but away from the listener about one meter in front of aface of the listener at (1.0 m, 0°, 0°). The voice of the reporter isassigned to SLP 2 that is located proximate to but away from thelistener about one meter on a right side of the face of the listener at(1.2 m, 30°, 0°). The background sound is located inside the head of thelistener at (0 m, 0°, 0°).

The SLP selector 120 couples to or communicates with the audio convolver140 and provides the audio convolver with the SLP designations. Theaudio convolver 140 convolves one or more of the different speakers orvoices with the SLP designations and outputs the convolved sound asaudio output 160. The audio output localizes to the listener to thesound localization points provided by the SLP selector 120.

The SLP selector 120 and/or the audio convolver 140 couples to orcommunicates with memory or database 130. The memory stores one or moreof SLPs (including SLP location and other information associated with aSLP including rich media such as sound files and images), user profilesand/or user preferences (such as user preferences for SLP locations andsound localization preferences), impulse responses and transferfunctions (such as HRTFs, HRIRs, BRIRs, and RIRs), information aboutprevious and current phone call and sound localization, informationabout the state of the user and device (e.g., current time, location,orientation), and other information discussed herein.

Consider an example in which the audio diarization system 110 performsreal-time speech and speaker recognition. The system annotates the audioinput 150 (e.g., an audio file or streaming audio) with information thatprovides temporal regions of sources or types of sound (e.g., speech,music, background noise, etc.) included in the audio signal. For examplefor speech, the system marks where speaker changes occur in the audioinput and associates segments of the speech with a previously identifiedor previously recognized speaker. For instance, the system segments theaudio input into file chunks for each unique speaker and/or non-speechsound. The system clusters these file chunks into groups so the audioinput is partitioned into homogenous segments according to an identityof the speaker and/or non-speech sound.

Elements of the computer system 100 can be in a single electronic deviceor spread across multiple electronic devices. For example, a cloudserver executes audio diarization and provides this audio to asmartphone that executes SLP selection and audio convolving. As anotherexample, the cloud server executes audio diarization, SLP selection, andaudio convolving and provides the convolved signal to the smartphone orother portable electronic device, such as a wearable electronic devicethat provides augmented reality (AR) and/or virtual reality (VR). As yetanother example, the audio input is provided to a handheld portableelectronic device (HPED) that executes audio diarization, SLP selection,and audio convolving.

FIG. 2 shows an example audio diarization system 200 in accordance withan example embodiment. The system 200 includes non-speech and/or speechdetection 210, non-speech and/or speech segmentation 220, and non-speechand/or speech clustering 230.

Although the system shows three separate processes of non-speech/speechdetection 210, non-speech/speech segmentation 220, and non-speech/speechclustering 230, these processes can be executed individually orindependently (such as performing speech detection, then speechsegmentation, then speech clustering) or executed simultaneously (suchas concurrently performing one or more of speech detection, speechsegmentation, and/or speech clustering).

One skilled in the art will appreciate that the audio diarization system200 can include other processes as well, such as noise reduction.Further yet, these processes can be split or performed at differentlocations (such as performing speech and non-speech detection on oneelectronic device and performing speech and non-speech segmentationand/or clustering on another electronic system). Alternatively, theseprocesses can be performed at a single location (such as performing themon an integrated circuit or chip in an electronic device).

At block 210, the audio diarization system 200 receives the audio input240 and classifies this audio input as being either non-speech audio orspeech audio. Non-speech audio includes, but is not limited to, music,silence, background noise, and other sounds. Speech audio includesvoices, such as voices of humans or computer-generated voices (e.g.,voices in a game, a voice of an intelligent personal assistant (IPA), avoice of a computer program, speech output from a natural languageinterface, or another type of computer-generated voice) or speechassembled by a computer from human voices or human voice recordings.

Speech activity detection (SAD) analyzes audio input 240 for speech andnon-speech regions. SAD can be a preprocessing step in diarization orother speech technologies, such as speaker verification, speechrecognition, voice recognition, speaker recognition, et al. SAD caninclude a GMM based speech activity detector or another type detector(e.g., an energy based detector).

At block 220, the audio diarization system 200 segments, partitions, ordivides non-speech audio and/or speech audio into segments (such ashomogeneous segments) according to identities of the speakers in thespeech audio and sounds in the non-speech audio. For example, the audiodiarization system identifies boundary locations for the speech in theaudio input (e.g., temporal start and stop locations for speakers in theaudio input). Speaker segments, for example, provide locations in agiven audio input that define places or locations where the speakerchanges. For example, a speaker change point in a teleconference occurswhere Alice stops talking and Bob starts talking.

Sound can be segmented using one or more of various techniques, such asmodel based sound segmentation, metric based sound segmentation, andenergy based sound segmentation. Model based sound segmentation executesmultivariate Gaussian modeling and BIC modeling. Metric based soundsegmentation executes a distance metric to determine if two audiosections are statistically similar or dissimilar. For example, in asliding window technique, two sliding windows are applied to the audioinput to determine dissimilarity between the windows per alog-likelihood metric or distance metric such as a Euclidean distance,Malhalanobis distance, or Kulback-Leiber distance. Speaker boundariesoccur at locations where distance scores exceed a predeterminedthreshold value. Energy based sound segmentation discovers pauses orno-sound locations (aka, silence locations) in the audio input to findspeaker or sound segment boundaries.

At block 230, the audio diarization system 200 determines which segmentsof non-speech and speech belong to a same or single source (e.g., whichspeech segments belong to a previously identified or previouslyrecognized speaker) and/or a different source (e.g., which speechsegments belong to a new speaker). For example, clustering identifieswhich speaker segments are the same and/or different and can group theclusters (such as providing one cluster for each speaker or each voice).Clustering can also label and/or identify segments of the non-speech andspeech. For example, the system labels a non-speech segment as “music 3”and labels a recognized speaker speech segment as “Alice.”

The audio diarization system 200 outputs the audio output 250 (e.g., oneor more sound tracks or segments).

FIG. 3 is a method to localize multiple different sounds to multipledifferent locations to a user in accordance with an example embodiment.

Block 300 states segment multiple different sounds in an audio input.

The multiple different sounds can include speech sounds and non-speechsounds. For example, the audio input is a telephone call or conferencecall with multiple different speakers. As another example, the audioinput is a television or radio broadcast with multiple differentspeakers and multiple different sounds (such as music, noise,environmental sounds, etc.). As another example, the audio input is atelephone call with multiple different speakers and multiple differentsounds (such as background music or background noise).

For example, in a telephone call, a computer system or electronic devicesegments each voice of a speaker that is talking to or will talk to aparty to the telephone call. The voices can be segmented during thetelephone call (e.g., after the telephone call commences, before thetelephone call commences, or when the telephone call commences).

For example, the computer system or electronic device segments speakersor voices in a television or radio show and assigns a different label toeach voice or each speaker.

Block 310 states convolve the multiple different sounds with multipledifferent head related transfer functions (HRTFs) of user.

For example, the computer system or electronic device convolves each ofthe voices with a different pair of HRTFs of a listener of the audioinput. In this manner, each voice can localize to a different externalsound localization point around or near the user. Alternatively, one ormore of these voices is not convolved with a HRTF but provided as stereoor mono sound to the user so the voice localizes inside the head of theuser.

Block 320 states provide the multiple different sounds to multipledifferent external sound localization points (SLPs) that are away frombut proximate to the user.

Voices of the speakers can be provided to the user in binaural soundthrough speakers, headphones, earphones, or another electronic devicewith two speakers (e.g., a head mounted display, heads up display, orwearable electronic glasses). Alternatively, one or more voices of thespeakers can be provided to the user in monaural sound or stereo sound.

Each different SLP can be associated with one or more transfer functionsor impulse responses (e.g., each SLP is associated with a different HRTFor HRIR, or BRIR). Alternatively, a SLP can be associated with aninteraural time difference (ITD) and/or interaural level difference(ILD). As another example, a SLP is located inside a head of the user(e.g., a SLP in which the voice is provided to the user in monauralsound or stereo sound).

Consider an example in which Bob and Charlie place an internet telephonycall to Alice using a Voice Over Internet Protocol (VoIP) service suchas SKYPE. Bob and Charlie place this telephone call from Bob's laptopcomputer that has a single microphone. Alice's contact list includes Boband Charlie, and her computer includes voice samples of Bob and Charliefrom previous telephone calls with them. Alice answers the telephonecall on her smartphone, and a sound localization system (SLS) executingon her smartphone recognizes the voices of Bob and Charlie based on acomparison with the voice samples. The SLS retrieves a SLP andcorresponding pair of HRTFs designated for Bob, and a SLP andcorresponding pair of HRTFs designated for Charlie. The voices of Boband Charlie are segmented, convolved with the respective HRTFs, andprovided to Alice so the voices localize at the designated SLPs.

As another example, a dry computer-generated voice without reverberationis convolved with a particular BRIR to give the sound a reverberationconsistent with other segments localized to the user.

FIG. 4 is a method to convolve segments of an audio input in accordancewith an example embodiment.

Block 400 states separate audio input into two or more audio segments.

The audio input is separated into two or more audio segments, channels,or tracks based on, for example, speech or voices, music, noise, orother sounds desired to be filtered or convolved. For example, voices ofdifferent speakers are parsed, divided, identified, recognized,segmented, or separated from an audio input.

Consider an example in which an electronic device executes an audiosegmenting process that segments audio input into two or more acousticclasses or audio events, such as music, clean speech, speech with noise,speech with music, etc. Feature extraction is based on CHROMAcoefficients, spectral entropy, Mel Frequency Cepstral Coefficients(MFCC), and/or HMM frame classification.

Consider an example in which an audio diarization system segments andclusters an audio stream into homogenous regions according to speakeridentity. The system converts the audio input (such as a Waveform AudioFile Format or WAV file or other audio file format) into MFCC featuresfrom which multiple features are extracted for each frame and stored asfeature vectors. Audio scene change is detected from the feature vectorusing, for example, Bayesian Information Criterion (BIC). For example,the results are clustered such that speech segments from a same orsingle person or voice are combined into one segment.

Block 410 makes a determination as to whether the audio segments areidentified.

For example, a determination is made as to whether the divided audiosegments are recognized or identified. For instance, an audio segmentmay be new and not recognized, such as being a voice of an unknownspeaker speaking for a first time in the audio segment. Alternatively,the audio segment is identified or recognized, such as being a voicefrom a known speaker, such as a speaker having a record in a databaseaccessible to the user.

If the answer to this determination is “no” flow proceeds to block 420that states select and/or assign an identity to the audio segments.

Consider an example in which an electronic device executes an audiodiarization system and/or a voice recognition system, and the systemthat executes includes voice recognition and/or speaker identification.The system determines whether voices in the audio input are previouslyidentified. For example, the system determines whether a person hasalready spoken in the current audio input or in a previous audio input(e.g., the system saves audio segments or fingerprints/voiceprints ofspeakers for subsequent identification). When the speaker is notidentified, the system provides a label or identity to the speaker (suchas labeling an unknown speaker as “Speaker 1”). Later, when this speakerspeaks again, the system recognizes and identifies this speaker oridentifies the voice as one that has been established or identified(such as recognizing and identifying that Speaker 1 is speaking again).This recognition or identification is used to attribute or classify anddesignate the voice or sound to a respective established segment or newsegment.

If the answer to this determination is “yes” flow proceeds to block 430that makes a determination as to whether the audio segments have a SLPand/or HRTF.

If the answer to this determination is “no” flow proceeds to block 440that states select and/or assign a SLP and/or HRTF to the audiosegments.

If the answer to this determination is “yes” flow proceeds to block 450that states convolve the audio segments with the HRTF associated withthe SLP.

Block 460 states provide the convolved audio segments to a user.

One or more sound localization points (SLPs) can be assigned ordesignated to one or more audio segments. For example, a SLP is assignedto each segment or assigned to a portion of the segments. These SLPs canbe pre-assigned, predetermined, or known before the system begins toprocess the audio input. Alternatively, these SLPs can be determined andassigned when the audio input is being processed (e.g., the systemassigns SLPs to voices in a telephone call while the parties are talkingduring the telephone call).

Consider an example in which Alice's user preferences include apreference for the voice of Bob in a telephone call to convolve to SLP 1(e.g., SLP 1 specifies a location in a spherical coordinate system at(1.2 m, 15°, 10°) for where Alice hears the voice of Bob when his voiceis convolved with a pair of HRTFs saved as HRTF-1). Her user preferencesalso include a preference for the voice of Charlie to convolve to SLP 2(e.g., SLP 2 specifies a location in a spherical coordinate system at(1.2 m, −15°, 10°) for where Alice hears the voice of Charlie when hisvoice is convolved with a pair of HRTFs saved as HRTF-2). Alice receivesa telephone call from Bob. The audio diarization system recognizes thevoice as belonging to Bob when he speaks, retrieves a SLP assigned toBob, SLP 1, from memory as the location to localize his voice to Alice,and convolves Bob's voice with HRTF-1. During this call, Alice receivesa call from Charlie, and she adds him to the call with Bob. When Charliespeaks, the audio diarization system recognizes the voice of Charlie,retrieves SLP 2 (a SLP designated to Charlie) from memory as thelocation to localize his voice to Alice, and convolves Charlie's voicewith HRTF-2.

Consider an example in which a BRITISH BROADCASTING CORPORATION (BBC)audio archive includes three speakers: a host and two guest speakers.Alice activates the audio archive to play on her headphones, andtriggers the following events: Her intelligent personal assistant (Hal)determines from historic listening habits that Alice prefers to listento audio recordings in binaural sound. Hal instructs an audiodiarization system to preprocess the audio archive and determines thatthe audio has three voices (the host and two guest speakers). Haldesignates the voice of the host to internally localize to Alice,designates the voice of the first guest speaker to localize at (1.1 m,30°, 15°), and designates the voice of the second guest speaker tolocalize at (1.1 m, −30°, 15°). Hal selects a SLP for each segment,retrieves a HRTF that corresponds to a segment, and provides the HRTFsfor the segments to an audio convolver. As the BBC audio archive begins,the three sound segments (corresponding to the three different voices ofthe host, the first guest speaker, and the second guest speaker) areconvolved with the retrieved HRTFs. The BBC audio archive plays throughAlice's headphones with the voices localized to the locations that Haldesignated.

FIG. 5 is a method to move voices during a telephone call frominternally localizing to externally localizing in accordance with anexample embodiment.

Block 500 states provide, during a telephone call, multiple differentvoices to a user so the multiple different voices internally localize tothe user.

For example, the voices are provided to the user in monaural sound orstereo sound. The telephone call can also include other sounds (such asmusic and background noise). For instance, a user talks to more than oneperson on a conference call, and one of the participants has musicplaying at his or her location. Alternatively, a group of people callsthe user from their laptop computer, and noise exists in the background.

Block 510 states receive, during the telephone call, a request to moveone of the multiple different voices from internally localizing to theuser to externally localizing to the user while another of the multipledifferent voices remains internally localized to the user.

The request can originate from the user or a person, an intelligentpersonal assistant (IPA), an intelligent user agent (IUA), a softwareprogram, a process, or an electronic device.

Consider an example in which a user is on a conference call and hearsthe voices of several speakers intracranially or internally localized.The user desires to localize the voices to different locations aroundhim so it is easier for the user to distinguish or determine who istalking. During the conference call, the user provides a verbal commandthat causes an instruction to move one or more of the voices frominternally localizing to externally localizing.

Block 520 states segment, during the telephone call, the multipledifferent voices.

In response to the request, a computer system or electronic devicesegments, detects, extracts, separates, divides, or identifies one ormore of the multiple different voices.

Consider an example in which an example embodiment executeshardware-based signal analysis that processes the sound to increase thespeed and accuracy of segmentation decisions. For example, a digitalsignal processor (DSP) executes one or more of segmentation analysis,diarization, convolution, and deconvolution.

In one example embodiment, an audio diarization system segments themultiple different voices according to a segmentation scheme prearrangedbetween the calling parties. For example, the audio diarization systemexecutes or processes a protocol agreed upon by the devices or softwareclients of the calling parties to identify segments in audiotransmissions or outgoing streams of audio. Segment identity orinformation is encoded according to the protocol and is shared betweeneach user so that the selected voice(s) or segments can be parsed,isolated, or identified and moved per a request.

In one example embodiment, voice recognition executes together withdiarization to identify a speaker in an incoming phrase of speech inorder to establish a segment and/or assign the incoming phrase to anestablished segment of an incoming stream of voices.

Consider an example in which a user receives a call from friends Alice &Anne, and identical twins Bob & Bill gathered at Alice's house. Theuser's segmentation system is able to distinguish Alice's voice fromAnne's voice. The system cannot reach the certainty threshold requiredto distinguish between Bill's segment and Bob's segment. Performingadditional analysis to distinguish the male voices with certaintyresults in unacceptable delay of the playing of the male voices as wellas occasional errors in segmentation between the female voices.Therefore, resources are prioritized to achieve consistent and correctsegmentation for Alice and Anne. Samples determined to include the voiceof Bill or Bob are not distinguished, but attributed to a single segmentwithout expending further resources to distinguish between the twovoices. The result is that the user hears each of the four peoplewithout confusing delay, and hears Alice and Anne without interruptionor error at the respective designated SLPs. The user hears Bill and Bobclearly but without localization or at a common SLP, and overallconsistency of user experience is maintained by forgoing segmentation ofthe similar sounding boys.

Segments can be played without adherence to a common time-code, can beplayed at unequal or varying speeds, and/or some segments can be playedlater than other segments. The ability to delay or slow the playback ofa segment can assist in rationing processing resources in order toprovide prioritization of one segment over another. By way of example,prioritization can be based on segmentation speed, accuracy, voicerecognition or voice model calculation, sound ID or acoustic fingerprintcalculation, convolution, deconvolution, filtering, or othertime-dependent processing-intensive tasks. For example, if one segmentis prioritized in the segmentation process, then the audio framesdetermined as not belonging to the priority segment can be delayedand/or processed with a lower priority.

In another example embodiment, the audio diarization system executes oneor more of detecting voices, identifying voices, segmenting voices, andclustering voices before the action is requested. For example, before arequest is made to move a voice from internally localizing to externallylocalizing, the audio diarization system operates on a recorded file ofthe incoming sound up to a recent moment.

In an example embodiment, the audio diarization system can also executeone or more of creating and improving models of various characteristicsof segments, detecting voices or sounds, identifying voices, comparingvoices to known voices in a call log or contact list, segmenting thevoices, and clustering the voices. These actions can be executed inanticipation of a request to move a voice. These actions can also beexecuted as a prediction that such a request will be made or as aprediction that identification, segmentation, and/or clustering will berequired or requested at some point during the listening or in a futurelistening to a source that includes one of the segments. These actionscan be performed even if the voices are provided to the user in monauralor stereo sound.

For example, an audio diarization system segments each call and eachaudio source for a duration of a training period, such as severalminutes, several hours, several days, or several weeks. The systemcreates and refines models for sounds played to the user or received bythe system, such as calls and sounds that the user does and does notlocalize. During the training period, due to refinement from multiplecalls and playing multiple other sound sources, an increase occurs inthe quality of the models built to identify various voices, sound types,sounds, or segments, and an increase in the accuracy of the models inidentifying the various sounds. The system can refer to the saved maturemodels to process future calls for which the user or an electronicdevice requests segmentation and/or localization.

Consider an example where a user at a cocktail party desires toconcentrate on a particular one of the voices and can disregard theothers and his HPED assists in realizing the “cocktail party effect.”The user indicates to the system a particular voice that the userdesires to highlight, and the particular voice may or may not be onethat is currently localizing. For example, the user makes the indicationwith a command such as a gesture or voice command such as, “clarifycurrent voice.” In response to the command, the system can enhance theloudness or clarity of the voice/segment. The system can also enhancethe volume or clarity of other voices/segments, such as enhancing soundsin order to provide audible contrast. Segments of less interest can bemuted, paused, blurred, muffled, or played in a lower volume or as lowerresolution sound streams. This action can assist the user inconcentrating on a particular voice or segment.

Consider the example above in which one or more segments are localizedto the user. The user has a head or gaze tracking system, and he selectsthe segment of interest by turning his head or gaze toward the SLP ofthe segment. Alternatively, a user's head or body orientation ismonitored by or fixed to a device he has or wears, and the user turnshis head or body to the SLP of interest. For example, the user issues avoice command (such as “clarify”) when the user's face is directedtoward the SLP localizing a segment-1. This face orientation indicatesto the system that segment-1 is the segment to be operated upon. In thisexample then, segment-1 is clarified and/or the other segments are madeto sound less clear to the user.

Block 530 states convolve, during the telephone call, the one of themultiple different voices with a head related transfer function (HRTF)of the user.

Example embodiments are not limited to convolving the voice or soundwith a HRTF since the voice can also be convolved or moved or adjustedwith an HRIR, BRIR, ITD, ILD, or other transfer function or impulseresponse. Example embodiments can also execute or process a HRTF, BRTF,RTF or other transfer functions to deconvolve a voice or sound such asto remove from the voice or sound acoustic effects imprinted on thesound by a room or environment or a prior convolution. For example, adeconvolver can process a voice spoken in a certain room-1 together witha certain RTF-1 known for the room in order to remove or reduce theacoustic effects of the room-1 from the voice, or the voice can beprocessed with an inverted filter. The post-process voice can then beconvolved with a different impulse response.

Block 540 states provide the telephone call to the user so the one ofthe multiple different voices externally localizes to the user while theother of the multiple different voices remains internally localized tothe user.

Consider an example in which Alice, Bob, Charlie, and David are on adial-in conference call with the parties being in various locationsthroughout the world. Alice participates in the call with her smartphonewhile she wears earphones. The voices of Bob, Charlie, and David areprovided to her in mono sound. During the call, Alice issues aninstruction to her smartphone to externally localize Bob's voice infront of her and three feet from her face. In response to this request,an audio diarization system segments, and identifies the voices. Bob'svoice is extracted from the other voices and convolved with a left andright HRTF so his voice localizes to the sound localization point thatAlice designated (i.e., in front of her and three feet from her face).The voices of Charlie and David continue to localize inside Alice's headwhile the voice of Bob now localizes externally to her.

Consider an example in which Alice and Bob are on a telephone call. Bobis in his apartment with loud music. Bob's voice and the music localizeinternally to Alice. During the telephone call Bob moves closer to thesource of the music in his room, and the loudness of the music increasesfor Alice. Alice's audio system recognizes that the telephone callincludes both Bob's voice and music. When the loudness of the musicpasses a threshold value, the audio system initiates automaticdiarization of the telephone call. This process divides or separates themusic from Bob's voice and then convolves the music so it externallylocalizes to Alice while Bob's voice continues to internally localize toAlice. Before the loudness of the music passes the threshold loudnessvalue, both Bob's voice and the music internally localize to Alice.After the music passes the threshold loudness value, the music is movedto originate at a SLP that is remote from Alice. Alternatively, theaudio system reduces the loudness of the music segment, or omits themusic segment from the audio output to Alice so she does not hear themusic

Consider an example in which Alice and Bob are on a telephone call.Bob's voice internally localizes to Alice since his voice is provided toher in mono sound. Charlie and David then join the call so Alice talksto three different people (i.e., Bob, Charlie, and David). Alice's IPA(Hal) analyzes historic multi-party calls that include Alice anddetermines that Alice externally localizes voices 85% of the time forsimilar calling circumstances. Based on this predictive preference, Halautomatically moves the voices of Charlie and David so they externallylocalize to Alice. Hal leaves Bob's voice in mono sound to internallylocalize to Alice because her call history shows that she has notexternally localized the voice of Bob in 86 of the 86 calls logged withBob. Upon moving the voices, a voice of Hal states to Alice “movingvoices, Charlie and David.” Bob, Charlie, and David do not hear thevoice of Hal and are unaware that the voices moved for Alice.

Consider an example in which Alice's mother and father phone her fromtheir laptop that includes a single microphone, and Alice receives thecall with her smartphone. Initially, Alice talks to her mother withoutthe father. During this time, sound from the telephone call (the voiceof her mother) localizes to Alice to a single SLP of (1.1 m, 20°, 0°). Avoice recognition system detects one voice in the call. An audiodiarization system does not segment the audio input since the telephonecall has a single voice with no other sounds. Suddenly, Alice's fatherwalks into the room where Alice's mother is and speaks to Alice throughthe laptop computer. A voice recognition system detects the addition ofanother voice, and Alice's smartphone activates the audio diarizationsystem. The system segments the voices of the mother and the father andprovides them to different SLPs. The voice of Alice's mother continuesto localize to (1.1 m, 20°, 0°). Hal (Alice's IPA) knows Alice likes tohear the voice of her father at (1.1 m, −30°, 0°), so Hal selects thisSLP for the voice of her father.

FIG. 6 is a method to designate a sound localization point (SLP) to atelephone call in accordance with an example embodiment.

Block 600 states receive incoming telephone call or commence outgoingtelephone call.

For example, a handheld portable electronic device (HPED) receives orcommences a telephone call.

Block 610 makes a determination as to whether one or more SLPs aredesignated for the telephone call.

For example, a determination is made as to whether one or more SLPs areassociated with the telephone call, such as a SLP being assigned to atelephone number being called, a SLP being assigned to a telephonenumber of a caller, a SLP being assigned to a party, contact, or personbeing called, or a SLP being assigned to a party, contact, telephonenumber, caller identification (caller ID) tag, or person calling (e.g.,the calling person).

One or more SLPs can be associated with the telephone call in other waysas well. For example, a SLP is assigned to the telephone call based on atime of day, a day of the week, a global positioning system (GPS)location of a user (such as a calling party or receiving party), userpreferences, present moment or historic or past assignments orconsiderations of SLPs for telephone calls or other sources, predictionsof where a user wants to localize voices and/or sounds in the telephonecall, etc.

If the answer to the determination in block 610 is “no” flow proceeds toblock 620 that states designate one or more SLPs to the voices and/orsounds in the telephone calls.

Voices and/or sounds in a telephone call can have previous orpredetermined SLP designations. For example, Alice designates in heruser preferences that telephone calls with Bob execute so Bob's voicelocalized to a specific SLP. As another example, an audio diarizationsystem is set to identify when a telephone call includes backgroundmusic. When the background music is present, the audio diarizationsystem segments the audio, separates the music from the speech, andoutputs the music segment to an audio convolver, such as executed with adigital signal processor. The audio convolver convolves the music with apredetermined or preselected SLP so the listener localizes the music toan external location.

Designation of SLPs can also be based on a number of different speech ornon-speech segments in the audio input. Consider an example rule foraudio that provides as follows: Segment incoming audio input of atelephone call when the audio input has two or more different audiosegments of voice. Per this rule, when audio input of a telephone callhas a single speaker, then the voice of the speaker is not designated toan external SLP. When the audio input of a telephone call has two ormore speakers, then the voices of the speakers are segmented andconvolved to external SLPs.

If the answer to the determination in block 610 is “yes” flow proceedsto block 630 that states segment audio in the telephone call per thedesignation of the SLPs.

Block 640 states convolve the audio in the telephone call so the voicesand/or sounds localize to the designated SLPs.

When a SLP is designated for a speech segment or non-speech segment, aSLP for the segment is retrieved. The speech segment or non-speechsegment is convolved or otherwise processed so the speech segment ornon-speech segment localizes to the SLP.

Consider an example in which Alice receives a telephone call on hersmartphone from Bob who talks to Alice on a speakerphone in his car. PerAlice's user preferences, the voice of Bob localizes to Alice at (1.2 m,20°, 0°). During the telephone call, a passenger (Charlie) in Bob's car,says “Hi Alice. It's me Charlie. How are you?” The sound localizationsystem executing with Bob's car recognizes Charlie's voice and sendstogether with the audio an indicator that identifies Charlie as a secondvoice. When Charlie's speech arrives at Alice, her smartphone reads theindicator and retrieves Alice's preexisting SLP preference for Charlieas (1.2 m, −20°, 0°). A digital signal processor in her smartphoneconvolves Charlie's voice so it localizes to (1.2 m, −20°, 0°). At thistime, Charlie and Bob both talk to Alice. An audio diarization systemdetects the two voices, segments the voices, and labels the segments ofCharlie and Bob with unique indicators. The voices of Charlie and Bobcontinue to localize to the respective SLPs to Alice.

Predetermined or previously designated SLPs are stored in memory and areretrievable. For example, memory stores preferred SLPs or preferencesfor contacts and telephone numbers. For instance, when Bob calls Alice,her smartphone identifies the incoming party by telephone number, callerID, Internet Protocol (IP) number, username, etc., consults thepreferences associated with the identity, and retrieves a HRTFcorresponding to a SLP preference.

SLPs and SLP designations can also be determined in real-time whenneeded or requested. For example, Alice receives a telephone call froman unknown party and an unknown voice of a caller. Her soundlocalization system (SLS) creates a SLP with coordinates (1.0 m, 0°,90°) for unknown callers and designates the voice of this caller aboveher head at (1.0 m, 0°, 90°).

FIG. 7 is a method to convolve segments of an audio input in accordancewith an example embodiment.

Block 700 states determine information about audio input.

The information includes, but is not limited to, one or more of a fileformat of the audio, a classification or type or source of the audio(e.g., a telephone call, a radio transmission, a television show, agame, a movie, audio output from a software application, etc.),monophonic, stereo, or binaural, a filename, a storage location, auniversal resource locator (URL), a length or duration of the audio, asampling rate, a bit resolution, a data rate, a compression scheme, anassociated CODEC, a minimum, maximum, or average volume, amplitude, orloudness, a minimum, maximum, or average wavelength of the encodedsound, a date when the audio was recorded, updated, or last played, aGPS location of where the audio was recorded or captured, an owner ofthe audio, permissions attributed to the audio, a subject matter of thecontent of the audio, an identify of voices or sounds or speakers in theaudio, music in the audio input, noise in the audio input, metadataabout the audio, an IP address or International Mobile SubscriberIdentity (IMSI) of the audio input, caller ID, an identity of the speechsegment and/or non-speech segment (e.g., voice, music, noise, backgroundnoise, silence, computer generated sounds, IPA, IUA, natural sounds, atalking bot, etc.), and other information.

Block 710 states determine how many tracks/segments are in the audioinput.

A number of tracks and/or segments in an audio input depend, forexample, on the type, classification, designation, or definition of atrack and/or segment. For example, a track and/or segment can be definedas speech or voice, music, speech with music, noise, gaming sounds,animal sounds, machine generated sounds, or other types of sound.

The number of tracks or segments can be based on the type of sound beingprocessed or a type of sound that is relevant to a particularapplication. For example, an audio input can include five differenttypes of sounds (e.g., three different speaker segments, one musicsegment, and one background noise segment). The system can be programmedor structured to manage localization for speaker segments, and hence thenumber of segments to localize to the user is three. Alternatively, thesystem can be programmed or structured to manage localization forspeaker segments and music segments, and hence the number of segments tolocalize to the user is four.

In some instances, the number of tracks and/or segments in an audioinput may not be known in advance of the diarization process.Alternatively, this number may be known (e.g., the number of segments inthe audio input is provided with the audio input, such as being part ofthe metadata for the audio input). In other instances, the number ofdifferent or unique tracks and/or segments cannot be determined untilafter the diarization process. For example, the system is designated tosegment speech and localize different voices to different SLPs, but thesystem does not know how many unique speakers are in the audio inputuntil an end of the audio input. As yet another example, the audio inputis stored after undergoing a diarization or voice/sound recognitionprocess and subsequently transmitted or provided to an electronic deviceof a listener.

In an example embodiment, identified segments can be provided or notprovided to an electronic device or a listener. For example, adiarization process outputs four segments. Two of these segments aresent to the user, and two of these segments are filtered and not sent.Tracks or channels can represent segments. For example, in an exampleembodiment, one stereo recording is presented to the user as twosegments, one segment being the left stereo channel and one segmentbeing the right stereo channel.

Consider an example in which the audio input includes information aboutthe segments or sounds in the audio. For instance, this information is adata file that is a “map” of the segments included in the audio input(e.g., the map is a text file with a series of vectors for each of thesegments, and the vectors include a start time-code and a run-length).

Block 720 states determine which tracks and/or segments to externallylocalize and which tracks and/or segments to internally localize basedon the information and/or the number of tracks and/or segments in theaudio input.

For example, an example embodiment determines one or more of whichtracks and/or segments to internally localize to a user, which tracksand/or segments to externally localize to the user, which tracks to omitfrom localization processing, and which tracks to omit from output tothe user. This determination can be based on the information about theaudio input and/or the number of tracks and/or segments in the audioinput.

Block 730 states determine SLP/HRTFs for each of the tracks/segmentsthat externally localize.

Tracks and/or segments can be designated to localize internally orexternally. Tracks and/or segments designated to internally localize areprovided in monaural sound or stereo sound. Tracks and/or segmentsdesignated to externally localize are convolved or processed with atransfer function or impulse response, such as an HRTF, HRIR, BRIR, etc.The tracks and/or segments that internally localize can also beconvolved or processed with a transfer function or impulse response,such as convolving a voice with a RIR while providing the voice tointernally localize to the user.

Block 740 states convolve and/or process the audio input for theinternally and externally localizing tracks/segments.

By way of example, a radio archive can include thousands or hundreds ofthousands of audio recordings. A listener or computer program does notknow in advance of segmentation how many speech segments or non-speechsegments are in a particular radio archive. As such, it may bechallenging for the user or computer program to determine a best or apreferred or an optimal localization for the sounds of the speech andnon-speech segments at the time of playing. Additionally, the listeneror computer program may not know information about the audio recordingspertinent to potential speech and non-speech SLPs. Example embodimentssolve these problems and others.

Consider an example in which an archive audio recording has fivedifferent speakers but this number is unknown to a listener. An audiodiarization system preprocesses the audio recording and determines thatfive different speakers or speech segments exist in the audio recording.This system determines the following information:

(1) Number of speakers: 4 speakers (Speaker 1-Speaker 4).(2) Play duration of audio recording: 50 minutes.(3) Identity of speakers: Winston Churchill (Speaker 2).(4) Total minutes of speech excluding pauses and gaps: Speaker 1 (22minutes), Speaker 2 (18 minutes), Speaker 3 (6 minutes), and Speaker 4(4 minutes).

Based on this information, a sound localization system (SLS) makesinformed designations or suggestions on localization for each of thefour speakers. Since Winston Churchill is the single noted speaker inthe audio recording and speaks for the second longest duration, the SLSplace the voice of Winston Churchill (Speaker 2) near the listener at anoptimal or prime location of (1.0 m, 20°, 0°). Since Speaker 1 has thelargest amount of speaking time but is not known, the SLS places thevoice of Speaker 1 near the listener at a second optimal location of(1.0 m, −20°, 0°). Speaker 3 talks for 6 minutes (a small amount of timerelative to Speakers 1 and 2), so the SLS places the voice of Speaker 3farther away from the listener at (1.8 m, 40°, 0°). Speaker 4 talks for4 minutes (the least amount of time), so the SLS places the voice ofSpeaker 4 farther away from the listener at an opposite location ofSpeaker 3 of (1.8 m, −40°, 0°).

Consider an example in which a sound localization system (SLS)identifies speakers in a broadcast news show being received by the userwith a TV-tuner software application, and places voices of each speakerat a different SLP relative to the listener. An audio diarization systemsegments and clusters the voices of the different speakers. The systemplaces the audio in the segments at locations for the listener based onpersonal and/or the individual characteristics of the listener (e.g.,his or her historic or previous placements such as common placements orrecent placements, his or her user preferences, traits or personality ofthe listener, or another factor specific or unique to the listener). Forexample, multiple listeners of a particular broadcast or podcast (or anelectronic device or software program of each listener) can individuallydetermine where to localize each unique voice. For instance, eachlistener has a unique or customized listening experience since theselected SLPs (for the voices of the different speakers in thebroadcast) are different for each listener. For example, listeners canlocalize the voices to favorite or preferred SLPs. Alternatively, theseSLPs can be determined by an IUA acting on behalf of the listener.

Upon or following the SLP assignments for the segments, during or afterthe broadcast news show, the SLP or HRTF or BRIR assignments of eachsegment are saved, stored, or updated in the user preferences. Theassignments are also stored or updated in the listener's contact list.For example, the news anchor Dharshini David whose voice is localized ata SLP-1, following the localization event, is added to the listener'scontact list tagged with a name “Dharshini David” and with a default SLPspecified as a SLP-1. The assignments are also stored as new records inthe listener's call log or localization log with a timestamp, listenerlocation, context, sound source, and other information about thelocalization event. At a later time, the listener plays a differentepisode of the news show that is not broadcast, but instead is streamedto the listener by on-demand podcast software. The podcast is segmented,and the voice of news anchor Dharshini David is identified by thesystem. The system consults the listener's user preferences, and/orcontact list, and/or localization log, and looks for SLPs associatedwith Dharshini David. The SLS determines that a preferred and/or recentand/or common SLP for Dharshini David is SLP-1 and localizes the voiceof Dharshini David to SLP-1. The listener experiences consistentlocalization of the voice of the news anchor from two different sourcesor software applications (TV-tuner and podcast player). Furthermore, thepoint of localization is not unexpected by the listener, but occurs at afamiliar or recognizable location despite the difference in thecommunication channel, device, or software providing the audio. The newsanchor is a “reappearing character” or sound, and the SLS can place thereappearing character at consistent localizations for a user withoutrespect to a sound source. This process provides a user with aconsistent listening experience.

FIG. 8 is a method to select a location where to place sound of an audioinput in accordance with an example embodiment.

In an example embodiment, a computer system or electronic deviceanalyzes or processes the audio input to determine a type of sound inthe audio. For example, the audio input includes speech, non-speech, ora specific type of speech or non-speech, such as human voice, aparticular human voice, computer generated voice, animal sounds, musicor a particular music, type or genre of music (e.g., rock, jazz,classical, etc.), noise or background noise, etc.

In some example embodiments, sound analysis is not required for soundtype identification because the sound is already identified, and theidentification is accessible in order to consider in determining alocalization for the sound. For example, the type of sound can be passedin an argument with the audio input, passed in header information withthe audio input or audio source, The type of sound can also bedetermined by referencing information associated with the audio inputdesignated. In some cases, further investigation of the sound input isexecuted in order to determine the type of sound in the sound input. Themethod of FIG. 8 can be used in multiple situations including, but notlimited to, situations when a type of sound is not identified, when atype of sound is identified, and when some sounds are identified andothers are not identified.

Block 800 receives an audio input and makes a determination as towhether the sound type is identified for the source of the sound.

For example, the audio input is supplied together with a designation ofthe sound type of the audio input, or the audio input file or streamincludes a tag or a reference to the type of sound in the audio input.Alternatively, the type of sound may be previously known or identified,known when the sound is generated, known when the sound is received,known when the sound is obtained or retrieved, or known in anothermanner.

If the answer to this question is “yes” then flow proceeds to block 840that states select a location where to place the sound with respect to alistener based on the type of sound in the audio input.

If the answer to this question is “no” then flow proceeds to block block810 that states analyze audio input and/or information about the audioinput to determine a source of the sound and other information.

Block 820 makes a determination as to whether the sound type has beenidentified for the source of the sound.

If the answer to this question is “yes” then flow proceeds to block 840that states select a location where to place the sound with respect to alistener based on the type of sound in the audio input.

If the answer to the question in block 820 is “no” then flow proceeds toblock 830 that states execute speech and/or non-speech detection on theaudio input to determine the type of sound. Flow proceeds from block 830to block 840.

The blocks in FIG. 8 can execute in different orders and still be withinan example embodiment. In some example embodiments for example, block830 can execute before block 810, after block 810 (as shown), orconcurrently with block 810. Further, the type of sound can bedetermined, deduced, estimated, or predicted with block 810 alone, withblock 830 alone, with a combination of blocks 810 and 830 (as shown), orwith other factors discussed herein. As shown, the sound type can alsobe supplied and known without execution of 810 or 830.

Consider an example in which an operating system (OS) of an electronicdevice identifies a software application passing, transmitting, orprocessing sound to an output device, such as a network device, soundcard, or headphones. The OS can determine a source of the sound based onthe identification of the software application. A source of the soundcan also be determined from one or more other indications including, butnot limited to, a file type (for example as often indicated by afilename extension) of the audio input (e.g., “MP3” file), metadata orfile header tags, file analysis (such as by investigating waveforms orusing a DSP to examine other properties of the sound), content analysis(such as using Voice Activity Detection (VAD), voice recognition,Automatic Content Recognition (ACR), speech analytics (e.g., determiningthe language, words spoken in a voice sound, word meaning, a subject ortopic of the content), the name of a speaker, the identity of a piece ofmusic), a type of software providing the audio input (e.g., a mediaplayer, a game, a telephony application), a storage location (e.g.,stored on a user's smartphone, local network, internet, cloud server), aduration of the audio input, a sender of the audio input, an electronicdevice or computer program transmitting or providing the sound, headeror packet information, or an associated CODEC.

Audio can have many different sources. Examples of some of these sourcesinclude, but are not limited to, sound sources shown in exampleembodiments, a telephone or HPED that makes telephone calls, a computerprogram (e.g., an IPA or IUA), the internet (e.g., YOUTUBE or othermedia streaming service), another person or physical environment (e.g.,a person that captures binaural sound with two microphones and sharesthis sound), an electronic device (e.g., a server or a HPED), a musiclibrary or music player, a video player, a software application (e.g., avirtual reality (VR) game), memory (e.g., a flash memory device, a CD, aDVD, a solid state drive, a hard drive, etc.), a TV or radio emission orbroadcast, a wireless transmission, an appliance, a car, a public kiosk,a security system, a medical device, a home entertainment system, apublic entertainment system, and a virtual sound source, such as aspeaker in a virtual reality (VR) space or as an augmented reality (AR)fixture.

In an example embodiment, a computer system or electronic deviceanalyzes the audio input and/or information about the audio input todetermine a source of the sound. For example, the sound is included asan attachment to an email, and the sender or contents of the emailreveals a source of the sound. As another example, the source isdetermined from a URL or other data pointer to the sound (e.g., a linkof a proprietary format to stored sound such as radio programs, videoprogram archives, movies, or podcasts). As another example, metadataabout or with the audio input provides information about the source ororigin of the sound. As yet another example, the computer programgenerating the sound provides information about the source of the soundby referencing tags or header information provided by the OS (e.g.,sound from a “bot” or software robot, a natural language user interface,or an intelligent personal assistant provides information about thesource and that the sound is likely voice or speech).

Information about the source of the audio input can be sufficient toidentify a type of sound in the audio input. For example, if the sourceof the audio input is a telephone call from Bob to Alice, then Alice'ssmartphone can ascertain with sufficient certainty that the telephonecall is speech and likely the voice of Bob since her smartphonerecognizes his telephone number.

In other instances, information about the source of the audio input canbe analyzed to predict with a reasonable likelihood the type of sound inthe audio input. By way of example, this information includes, but isnot limited to, a type of file or format of the audio input, a locationwhere the sound is stored, a filename extension of the audio input(e.g., WAV or MP3), an electronic device transmitting the sound, andother information discussed herein.

Consider an example in which Alice receives on her smartphone a textmessage from her cellular service provider. The text message notifiesher that she has a new voicemail message and includes a link to activateto hear the message. When Alice activates the link, her smartphone knowsthe source of the sound is a voicemail message. For example, thesmartphone recognizes the link name, link format, or link target, orrecognizes the telephone number to retrieve the message. Her smartphoneretrieves a left and a right HRTF associated with voicemail messages andconvolves the message sound with the HRTFs so the message soundexternally localizes to a SLP that Alice usually uses for voicemails.Alice is familiar with the location of sound specified by the SLP andexpects the voicemail message sound at the location since the locationis where she prefers to hear her voicemail messages.

Consider another example in which the type of sound can be determinedfrom a source of the sound. For instance, sounds originating from adatabase of 1940's radio news broadcasts can be typed as speech bydefault since news broadcasts were given by a voice of a broadcastreporter or anchor. Likewise, an audio file titled “NBC SymphonyOrchestra: Beethoven's Fifth Symphony” may be categorized by default asmusic based on the title of the audio file.

In other instances, the type of sound can be determined or inferred fromother information, such as a type of file, file format, title of thefile, CODEC associated with the file, compression or storage method,metadata or headers, and other information. The type of sound can alsobe determined from sampling portions of the audio input, processing theaudio input, or executing audio diarization on the audio input. Forexample, a DSP analyses forty random 50 ms slices of a sound file withdistribution of the slices weighted toward the front, middle, and end ofthe file. The DSP determines that the file includes both music andvoice.

The source of the audio input may or may not be sufficient to determinethe type of sound in the audio input. For example, the source of theaudio input and other information can provide sufficient information toknow the type of sound with certainty (e.g., 95%-100%), with a highdegree of certainty (e.g., 85%-94%), with a reasonable degree ofcertainty (e.g., 70%-84%), or more likely than not (e.g., 51% or more).

By way of example, a speech/non-speech detector executes to determine ifa segment of the audio input is speech and/or non-speech. Examples ofspeech/non-speech detectors include, but are not limited to, hardwareand software that execute Gaussian Mixture Models (GMM), Support VectorMachines (SVM), Neural Networks (NN), Voice Activity Detectors (VAD),and other models discussed herein.

In an example embodiment, an electronic device, computer program, oruser selects a location where to place the sound with respect to alistener based on the type of sound in the audio segment being speechand/or non-speech. A location where to localize the sound for thelistener can depend on the type of sound being provided to the listener.A user or an electronic device can designate certain sounds to localizeto certain areas or certain SLPs. For example, a user designates musicto localize to one set of SLPs, voices in radio and television tolocalize to another set of SLPs, voices in telephone calls to localizeto another set of SLPs, sound in movies to localize to another set ofSLPs, etc.

The localization point of the sound for the user can depend on one ormore other factors, such as an identification or identity of a sound(e.g., an identity of a voice as belonging to Alice), a duration orlength of the sound, a meaning of the sound (e.g., localize warnings andalerts to a certain area or a certain SLP), a purpose or classificationof the sound (e.g., localize advertisements to a predetermined,user-selected SLP), or other factors discussed herein.

Consider an example in which similar types of sound are placed in SLPsexternal to or internal to the user. For example, a user listens to aradio show that localizes to a SLP at (1.0 m, 25°, 45°). During theradio show, an advertisement plays to a user at this SLP. The user doesnot want to hear the advertisement at this SLP and moves the sound to aSLP at (5.0 m, 20°, 0°) with a reduced volume. The user's manualre-designation of the SLP is a weighted indication to the SLS of apreference of the user to hear advertisements at (5.0 m, 20°, 0°). Inresponse to this determination, the SLS updates the user preferencesaccordingly. Later, an advertisement is played during the radio show.The user's sound localization system recognizes the sound as anadvertisement, consults the user's preferences, and automatically movesthe sound of this advertisement to (5.0 m, 20°, 0°) with a reducedvolume.

In some example embodiments, the audio input can be localized and/orSLPs selected without consideration of and/or knowledge of the source ofthe sound. Consider an example in which Alice's HPED detects whenearphones are plugged into the HPED or when the HPED is wirelesslycommunicating with the earphones. When this event occurs, sound providedto the earphones is automatically processed or segmented for speechand/or non-speech. Speech is convolved or processed to localize to onearea, and non-speech is convolved or processed to localize to anotherarea.

Consider an example in which Bob is driving, and his children aresleeping in back seat. He designates that while he is in the car soundslocalize to (0.2 m, 40°, −43°). This SLP represents the position of hiscar radio in the dashboard relative to his face. The system receives anincoming sound, consults Bob's designations with the knowledge thatBob's current context is in a car, and convolves the sound to (0.2 m,40°, −43°) without regard to the sound source according to Bob'sdesignation. Bob then hears the sound originate from his dashboard. As aresult, Bob knows that sounds he hears localized from other locationsare his children stirring or another sound from the environment.

As another example, a SLP selector is unable to determine the source ofa input sound and assigns a SLP recently selected by the user foranother sound, or assigns a SLP designated as a default SLP for soundsfrom sources that cannot be identified. As another example, the SLPselector is passed a pointer to an audio source and a segment ID. Whenthe SLP selector queries the system using the supplied segment ID inorder to learn about the sound in the audio source, the data returned isnull, unintelligible, improperly formatted, or an error code. The SLPselector proceeds with assigning a SLP for the audio source and selectsa SLP pre-designated by the user for sounds without fully qualifiedinformation. As another example, a user commands a current SLP at (1 m,20°, 0°) to “copy sound to left side” while continuing to localizeactive sound sources assigned to the SLP. The command triggers the SLPselector to copy the instance of the current SLP (including thedesignations of each source that localizes to this SLP) to (1 m, −20°,0°). The user localizes two SLPS. The copy operation executes withoutthe need to query, read, or refer to sound source(s).

FIG. 9 shows a sound localization point (SLP) selector 900 thatdetermines where to localize sounds in accordance with an exampleembodiment. The SLP selector receives as input an identification of asound or type of sound, or sound source. The SLP selector determines,based on the sound, type and/or source, and/or other information, one ormore sound localization points (SLPs), HRTFs, BRTFs, RTFs, or otherimpulse responses to apply to the sound (e.g., forconvolution/deconvolution of the sound).

The SLP selector can select a general area or location for the sound(e.g., place the sound so it externally localizes to a right side of aperson) or a specific location (e.g., place the sound so it externallylocalizes to a specific SLP or with a specific pair of left and rightHRTFs).

When a SLP is selected, then a corresponding HRTF for the selected SLPis retrieved. If a SLP does not have a HRTF, then one can be computed,calculated or captured for the SLP (such as interpolating a HRTF betweentwo or more known neighboring HRTFs in order to correlate a HRTF for theselected SLP).

A person or a user can select one or more SLPs that provide a locationwhere sound will localize to the person. As one example, the personselects a location for where to externally localize sound throughinteraction with a UI or a display of an electronic device, such as asmartphone, a head mounted display, or an optical head mounted display.As another example, a computer program or process, such as anintelligent user agent or an intelligent personal assistant, selects oneor more SLPs where sound will localize to the person.

Consider an example in which Alice receives a telephone call from anunknown telephone number on her smartphone. The smartphone identifiesthe incoming audio input as a telephone call, and the SLP selectorprovides the call to Alice in monaural sound so it internally localizesto her. This decision to internally localize the sound is based on oneor more of Alice's user preferences, and SLPs for previous telephonecalls from unknown numbers to Alice. When Alice answers the call, soundsfrom the call internally localize to her. Bob then speaks as the caller,and the sound localization system (SLS) recognizes Bob's voice. The SLSautomatically retrieves HRTFs for a SLP that Alice has selected tolocalize the voice of Bob in a prior call. The SLS then moves Bob'svoice to localize in front of Alice's face since she prefers to hear hisvoice from this location.

Consider an example embodiment in which the SLP selector is includedwith a digital signal processor (DSP) that is located in a handheldportable electronic device (HPED), such as a smartphone. The SLPselector is provided with or identifies a type of sound of a soundsegment. Based on this information, the SLP selector assigns a HRTF forthe sound or sound segment.

In an example embodiment, the SLP selector, or SLP selector functions,execute by or with a DSP or other integrated circuit. The SLP selectoror SLP selector functions can also be executed using another type ofchip, such as a field-programmable gate array (FPGA), microprocessor,microcontroller, or other type of architecture or central processingunit (CPU), such as a Reduced Instruction Set Computing (RISC)processor.

Audio input information and related SLP, device, and user informationcan be retrieved, stored, analyzed, transmitted, and processed to assistin executing an example embodiment.

FIG. 10A shows a table 1000A of example historic audio information thatcan be stored by the system for a user in accordance with an exampleembodiment. The audio information in table 1000A includes sound sources,sound types, and other information about sounds that were localized tothe user with one or more electronic devices (e.g., sound localized to auser with a smartphone, HPED, or other electronic device). The columnlabeled Sound Source provides information about the source of the audioinput (e.g., telephone call, internet, smartphone program, cloud memory(movies folder), satellite radio, or others shown in exampleembodiments). The column labeled Sound Type provides information on whattype of sound was in the segment (e.g., speech, music, both, andothers). The column labeled ID provides information about the characterof the audio input (e.g., Bob (human), advertisement, Hal (IPA), anacoustic fingerprint of the audio input, or others as discussed inexample embodiments). The column labeled SLP provides information onwhere the sounds were localized to the user. Each SLP (e.g., SLP2) has adifferent localization point for the user. The column labeled TransferFunction or Impulse Response provides the transfer function or impulseresponse processed to convolve the sound. The column can also provide areference or pointer to a record in another table that includes thetransfer function or impulse response, and other information. The columnlabeled Date provides the timestamp that the user listened to the audioinput (shown as a date for simplicity). The column labeled Durationprovides the duration of time that the audio input was played to theuser.

The system can store other historic information about audio, such as thelocation of the user at the time of the sound, his position andorientation at the time of the sound, and other information. The systemcan store one or more contexts of the user at the time of the sound(e.g., driving, sleeping, in a VR environment, etc.). The system canstore detailed information about the event that stopped the sound (e.g.,end-of-file was reached, connection was interrupted, another sound wasgiven priority, termination was requested, etc.). If termination is dueto the prioritization of another sound, the identity and otherinformation about the prioritized sound can be stored. If terminationwas due to a request, information about the request can be stored, suchas the identity of the user, application, device, or process thatrequested the termination.

As one example, the second row of the table 1000A shows that on Jan. 1,2016 (Date: Jan. 1, 2016) the user was on a telephone call (SoundSource: Telephone call) that included speech (Sound Type: Speech) with aperson identified as Bob (Identification: Bob (human)) for 53 seconds(Duration 53 seconds). During this telephone call, the voice of Boblocalized with a HRIR (Transfer Function or Impulse Response: HRIR) ofthe user to SLP2 (SLP: SLP2).

FIG. 10B shows a table 1000B of example user preferences of a user forlocalizing a sound source of telephone calls in accordance with anexample embodiment.

Table 1000B includes user preferences for sound types of speech andnon-speech for telephone calls. By way of example and as shown in thetable, both speech and non-speech for a sound source of a specifictelephone number (+852 6343 0155) localize to SLP1 (1.0 m, 10°, 10°).When a person calls the user from this telephone number, sound in thetelephone call localizes to SLP1.

As shown in the table, telephone calls from or to Bob or telephone callswith Bob are divided into two sound types. The voice of Bob localizes toSLP2. If the call includes music, then the music localizes to one ofthree assigned SLPs (SLP3-SLP5).

This table further shows that sounds from telephone calls from or toCharlie or telephone calls with Charlie internally localize to the user(shown as SLP6). Teleconference calls or multi-party calls localize toSLP20-SLP23. Each speaker identified in the call is assigned a differentSLP (shown by way of example of assigning unique SLPs for up to fourdifferent speakers, though more SLPs can be added). Calls to or fromunknown parties or unknown numbers localize internally and in mono.

Other preference information about telephone calls can be stored orshown as columns, such as the location of the user at the time of thecall, the device and/or application executing or processing the call bythe caller and user, one or more contexts of the user and caller at thetime of the call (e.g. driving, in a meeting, in a VR environment),caller or segment prioritization, and other information.

FIG. 10C shows a table 1000C of example user preferences of a user forlocalizing miscellaneous sound sources in accordance with an exampleembodiment.

As shown in table 1000C, audio files or audio input from BBC archiveslocalizes to different SLPs. Speech in the segmented audio localizes toSLP30-SLP35. Music segments (if included) localize to SLP40, and othersounds localize internally to the user.

As further shown in the table, YOUTUBE music videos localize to SLP45for the user, and advertisements (speech and non-speech) localizeinternally. External localization of advertisements is blocked. Forexample, if an advertisement requests to play to the user at a SLP withexternal coordinates, the request is denied. The advertisement insteadplays internally to the user, is muted, or not played. Sounds fromappliances are divided into different SLPs for speech, non-speech(warnings and alerts), and non-speech (other). For example, a voicemessage from an appliance localizes to SLP50 to the user, while awarning or alert (such as an alert from an oven indicating a cookingtimer event) localizes to SLP51. The table further shows that the user'sintelligent personal assistant (named Hal) localizes to SLP60.

The information stored in the tables and other information discussedherein can assist a user, an electronic device, and/or a computerprogram in making informed decisions on how to process sound (e.g.,where to localize the sound, what transfer functions or impulseresponses to provide to convolve the sounds, what volume to provide asound, what priority to give a sound, when to give a sound exclusivepriority, muting or pausing other sounds, such as during an emergency orurgent sound alert, or other decisions, such as executing one or moreelements in methods discussed herein). Further, information in thetables is illustrative, and the tables can include different or otherinformation fields, such as audio input or audio information discussedherein.

Decisions on where to place sound can be based on one or more factors,such as historic localization information from a database, userpreferences from a database, the type of sound, the source of the sound,the duration of the sound, a size of space around the user, a positionand orientation of a user within or with respect to the space, alocation of user, a context of a user (such as driving a car, on publictransportation, in a meeting, in a visually rendered space such aswearing VR goggles), historic information or previous SLPs (e.g.,information shown in table 1000), preferences of the listener,preferences of other users, industry standards, consistency of a usersound space, and other information discussed herein.

Consider an example in which each user has a unique set of rules orpreferences for where to localize different types of sound. When it istime to play a sound segment to the user, the user's system knows thetype of sound (e.g., speech, music, chimes, advertisement, etc.) andchecks the user's preferences and/or historic data in order to determinewhere to localize the sound segment for the user. This location for oneuser can differ for another user. For example, Alice prefers to hearmusic localize inside her head, but Bob prefers to hear music externallylocalize at an azimuth position of +15°. Alice and Bob in identicalcontexts and locations and presented with matching media player softwareplaying matching concurrent audio streams can have different SLPsdesignated for the sound by their SLP selectors. For instance, Bob'spreferences indicate localizing sounds to a right side of his head,whereas Alice's preferences indicate localizing these sounds to a leftside of her head. Although Alice and Bob localize the sound differently,they both get consistent personal user experiences since music localizesto their individually preferred SLPs.

FIG. 11 is a method to localize different types of sounds to users inaccordance with an example embodiment.

Block 1100 states provide a user with different types of sound.

Different types of sound can be provided to the user at one or moreparticular times (e.g., provided to the user in response to OS commandsor events, by one or more software applications executing on a HPED,and/or one or more input sources coupled to headphones, smart earphones,or OHMD worn by the user) or provided to the user over a period of time.Further, the sounds can be provided to the user from other users (e.g.,Alice telephones Bob) or provided to the user from various sources(e.g., a user hears an advertisement upon clicking on a URL; or a userhears sounds from his physical environment, such as sounds captured byone or more microphones worn by the user or sounds in the physicalenvironment).

As one example, a software program executes, provides the user withdifferent types of sounds, and asks the user to decide where he or shedesires to localize this type of sound. These sounds can be provided byname (e.g., asking the user where he wants to localize music).Alternatively, these sounds can be provided through listening (e.g.,play music to the listener and ask where she wants to localize themusic).

As another example, the different types of sounds are provided to theuser during a natural or ordinary course of the day for the user. Over acourse of a period of time (e.g., hours, days, weeks, etc.), a user willhear different sounds, and these sounds will localize to differentpoints or areas. For example, the user receives a telephone call andlocalizes the voices to one SLP, listens to music on his smartphone andlocalizes this music to another SLP, etc.

Block 1110 states determine where the user desires to localize thedifferent types of sound and/or where the different types of soundactually have localized to the user.

The user can directly or indirectly provide a location for a type ofsound. For example, a user interacts with a software program andinstructs this program to localize the voice of Alice to SLP (1.0 m,15°, 0°). As another example, SLPs are provided in his or her userpreferences. As another example, a user moves a sound, and this movementsignifies the user's desire to have such types of sounds localized inthe future to the point or area to where the sound was moved. Forinstance, Alice interacts with her smartphone and moves a voice of herintelligent personal assistant (Hal) to a location above her head. Thisact of moving the voice of Hal can indicate Alice's desire to have Hallocalize at this SLP in the future. As yet another example, a userpresented with a localized type of sound takes no action with regard towhere the type of sound localizes. This lack of action signifies theuser's desire or acceptance of the location that can therefore be storedas a default location.

Block 1120 states store the locations where the different types ofsounds localize to the user.

These locations along with the associated transfer functions or impulseresponses (e.g., HRTFs, HRIRs, BRIRs, etc.) can be stored in memory,such as in the form of a database in the memory of a handheld portableelectronic device (HPED), memory in a server, or memory in anotherlocation.

Block 1130 states process the locations of where the different types ofsounds localized to the user to provide the user with consistent orsimilar sound localization experiences.

A user experiences consistent localization experiences when same orsimilar types of sounds localize in a way that is not unexpected by theuser. A user experiences similar localization experiences when same orsimilar types of sounds localize in a similar way.

Consider an example in which Alice prefers to hear rock music externallylocalize close to her head (e.g., around one meter) but prefers to hearclassical music internally localize in her head (e.g., in stereo sound).Each time she engages her music player software application to playmusic files stored on her HPED or plays a music stream from anothersoftware application such as a web browser, the music is convolved sothe rock music plays to her preferred external location and classicalmusic plays to her preferred internal location. By taking into accountthe type of music or sound, Alice experiences consistent localizationacross input sources rather than according to input source.

In some instances, sound type alone may not be sufficient or reliable toprevent localizations that are unexpected to the user. Consider anexample where the input source is a movie called “My Dinner with Andre”in which Andre and Wally have a conversation at a table. The audiodiarization system segments the soundtrack of the film into a segmentfor the voice of Andre and a segment for the voice of Wally. While Alicewatches the movie, the segment of each voice is dynamically localizedaccording to the weight of the voice in the stereo pan of the stereosoundtrack. Andre sits at the table on the left side of the video framewhile Wally sits across from Andre toward the right side of the frame.Andre's voice is much louder in the left channel than the right channel,and Alice hears the voice of Andre localized to her left and the voiceof Wally localized to her right. Suddenly in mid-sentence, the cameraangle changes to Wally's point-of-view and Alice sees a frontal shot ofAndre centered in the frame. Simultaneously, the segment of the voice ofAndre changes to a near 0° azimuth to Alice, and the voice of Wallysuddenly becomes internalized to Alice. These are drastic and differentSLP movements but they are not unexpected to Alice and in fact provideher with a consistent user experience.

Consider another example in which Alice receives a phone call from twounknown callers. The voices are segmented and localized with a defaultangular difference of 30° azimuth. Later she receives a call from twofriends at a restaurant. The voices of the friends are segmented andlocalized to the default SLPs designated to them respectively by Alicefor one-on-one calls. Although the two friends are being localizedsimultaneously and separated by an angle of 15° (half of a defaultseparation), the voice localizations are not unexpected by Alice, andshe does not adjust them.

Consider an example in which Alice plays a game with a single diarizedsegment. The segment is music localized to a SLP-1. When she achieves ahigh score, an unknown human voice from the game application exclaims,“High score! Nice job!” The diarization system creates a new segment ofvoice type for the human voice of the game, and the SLP selectordesignates the same SLP-1 for the new voice segment. Alice expectsunknown human voices from her primary telephony application at a certainSLP-2. The game voice is indeed typed as an unknown human voice, but alocalization of the game voice at SLP-2 would be unexpected to Alice.The SLP selector considers both the sound type and source of the gamevoice (the game software application) and determines that a designationof SLP-1 would provide Alice with a more consistent user experience thana designation of SLP-2. Consequently, the location of the sudden humanvoice at SLP-1 is not unexpected by Alice.

In these examples, the sound types are voices, but in othercircumstances a determination of a sound type alone (such as adetermination that the sound is a voice) is not sufficient informationfrom which to derive a localization that will prevent the user fromexperiencing a localization that is unexpected. Both the sound type andthe sound source can be considered together in an example embodiment.

Example embodiments can provide a user with consistent and appropriatelocalizations and a consistent audio experience that minimizes eventsthat are unexpected or unwanted by the user. For example, a sound eventmay be unwanted by a user due to a time of day, his location, hisactivity, or his situation or context. In order to provide thisconsistency, the SLP selector makes decisions for the user, such aswhere to localize sound. The SLP selector can also make other decisionswith regard to binaural sound, such as loudness, timing (e.g., when tolocalize the sound), or whether to permit or to deny a sound that hasbeen requested to play. The SLP selector can also consider whichapplication, device, user, IPA, etc. requested the sound to play. In oneexample embodiment, the SLP selector, IUA, IPA, or other program makes adetermination about these aspects of the sound based on informationincluded in memory, such as information stored in a localization log oruser preferences.

Consider an example in which a SLP selector determines that a defaultSLP for unknown callers as specified or provided by a telephonyapplication is a SLP-1. The SLP selector designates SLP-1 for thelocalization of the voice of four consecutive calls, and the userchanges the localization or volume of each call. The system determinesthat SLP-1 or the volume level is not considered appropriate by the userand discontinues using SLP-1 or the volume level as a default forunknown voices.

As another example, the sound localization system (SLS) localizesvoicemail messages to a user as they arrive. Between 9:00 A.M. and 11:20A.M., the user commonly interrupts or cancels the playing of themessage. The system notices these interruptions as a statistic of thelocalization history and prevents voicemails from playing that requestlocalization between 9:00 A.M. and 11:20 A.M. In this example, a time ofday or timing bears on providing a user with an audio experience that isconsistent, expected, or appropriate.

FIG. 12 is a method to assign head related transfer functions (HRTFs) tosounds in accordance with an example embodiment.

Block 1200 states assign sound localization points (SLPs) and/or headrelated transfer functions (HRTFs) to sounds et al.

An electronic device, user, and/or software program or process canassign or designate associations between one or more SLPs, HRTFs, HRIRs,BRIRs, RIRs, etc. and one or more sounds et al. By way of example, thesesounds et al. include, but are not limited to, people, names (e.g.,names in a contact file, address book, contact list, personnel database,telephone or email contact list), unique voices (e.g., voices in a radiobroadcast or a voice of a friend), voice samples, voiceprints, acousticfingerprints, voice or sound signatures, an intelligent personalassistant (IPA) or intelligent user agent (IUA), gender (e.g.,SLPs/HRTFs assigned to males and SLPs/HRTFs assigned to females), phonenumbers, geographical locations, electronic devices, computer programs,games, music, streams, files, different segments in a diarized voiceexchange, different segment sound types, different devices such asdevices on a network, different applications or virtual devices,different appliances, or other types of sound and devices.

Consider an example in which a user or a voice recognition systemassigns SLPs/HRTFs to friends in his telephone directory. As anotherexample, a computer program assigns SLPs/HRTFs to different sounds in aVR game. As another example, an IPA designates SLPs/HRTFs to differenttypes or categories of music.

Block 1210 states store the SLPs and/or HRTFs and the assignments to theassociated sounds et al.

This information can be stored in memory, such as memory in a HPED, aserver, or a database. The information can also be stored as userpreferences (e.g., stored as a preference, a priority, something that ispreferred).

Block 1220 states retrieve the SLPs and/or HRTFs when the sound et al.is identified and/or requested.

An electronic device or software program retrieves or obtains theSLPs/HRTFs from memory when they are desired or requested. For example,a SLP selector retrieves one or more SLPs/HRTFs and provides them to aDSP to convolve sound for a user. As another example, the SLPs/HRTFs arepre-fetched, stored in cache, and obtained by a DSP for convolvingand/or processing binaural sounds to a listener. As another example, avoice of a person is identified during a telephone call, and HRTFsassociated with the person are retrieved so the voice of the personlocalizes per user preferences of the listener.

Block 1230 states convolve with and/or process the HRTFs so the soundlocalizes to the associated SLP.

For example, a processor or DSP executes a convolving process with theretrieved HRTFs (or other transfer functions or impulse responses) toprocess sound so that the sound is adjusted. For example, the DSPconverts mono or stereo sound to binaural sound so this binaural soundexternally localizes to the user.

Block 1240 states provide the convolved and/or processed sound to auser.

For example, an electronic device or software program provides theconvolved and/or processed sound to the user so the user can localizethe sound and hear it. The user can experience a resulting localizationexternally (such as at a SLP associated with near field HRTFs and farfield HRTFs) or internally (such as monaural sound or stereo sound).

Sounds can be provided to the user through speakers, such as headphones,earphones, stereo speakers, etc. The sound can also be transmitted,stored, further processed, and provided to another user, electronicdevice or to a software program or process.

Consider an example in which a user desires to have male voices convolveto one or more locations having a positive azimuth location along anazimuth plane located in front of the user. He desires to have femalevoices convolve to one or more locations having a negative azimuthlocation. The SLPs for voices are based on or associated with a genderof the speaker or a gender or calculated gender of the voice. Forexample, the user receives a telephone call from an unknown caller. Whenthe caller speaks, the user's smartphone recognizes or identifies thevoice as being female and automatically chooses a HRTF of the user sothe female voice convolves to a negative azimuth location (e.g., −10°,−20°, −30°, or −40° on the horizontal plane).

Consider an example in which a technology, entertainment, or educationcompany sells, rents or provides HRTFs, BRIRs, or RIRs, such as a set ofone or more HRTF pairs to users. Some of these HRTFs include anoptimization, preference, or designation for certain types of sounds(e.g., some HRTFs designated for music, some HRTFs designated for speechin telephone calls, some HRTFs designated for voices in games, someHRTFs designated for IPAs, some HRTFs designated for warnings fromappliances, some BRIRs designated for listening in cars, etc.). Forexample, a music publisher rents availability of RIRs matching theimpulse responses of a near center stage position inside a famous musicvenue called CBGBs. The music publisher assigns the RIRs to musicalgroup Talking Heads. When the user plays a song by Talking Heads, thesong is convolved with the assigned RIRs. The user hears the sound ofthe song as though the user were near the stage in CBGBs where TalkingHeads commonly performed concerts.

HRIRs/HRTFs, BRIRs/BRTFs, RIRs/RTFs, etc. can be assigned to a place orlocation, and can be employed in both convolution and deconvolution. Forexample, NASA publishes RTFs of a cockpit position in a space shuttle,and Bob assigns the RTFs to the record of his boss in his phone'saddress book and to the voice of his coworker Alice. Bob also has RTFsfor the position at his desk at the office created by transforming RIRsthat he captured at his desk from a friend sitting in a particular bluechair a meter away from the desk. When the RTFs were created from theRIRs captured at the desk, they were assigned a tag indicating thelocation of the impulse capture. When Bob is at his desk at the officehe listens to his coworker Alice who sits in the blue chair. Bob iswearing earphones including binaural microphones providing mic-thrusound that can be processed by the SLS in his phone. He designates hisphone to localize the mic-thru sound source. His phone recognizes thevoice of Alice in the live mic-thru segment and executes a program toretrieve RTFs associated with her voice. The program retrieves the RTFsof the shuttle cockpit assigned to her voice. Before convolving a soundwith RTFs, the phone executes a routine to determine if it is possibleto remove RIRs or clean/dry the source. In this case the phonedetermines that the RTFs for the current location (Bob's office) havebeen stored and are retrievable. In response to this determination, thephone retrieves the RTFs tagged with the position of Bob's desk andsubmits the RTFs as input to deconvolve the voice of Alice from themic-thru sound. The voice of Alice with diminished room characteristicsis convolved with the space shuttle RTFs as designated. Bob hears Alicespeaking in the blue chair as though they are in a space shuttletogether. Later Bob's boss calls Bob, the phone retrieves the spaceshuttle RTFs and a HRTF (proximate to Bob) designated to the addressbook record of Bob's boss. Bob hears his boss proximate to him, andAlice in the blue chair, as though the three of them are in a spaceshuttle.

Consider an example in which an IPA (named Hal) monitors locations wherehis user (Alice) localizes different types of sounds. Over a period oftime, Hal observes that Alice prefers to localize music internally,localize voices in telephone calls to azimuth positions +20° and −20°,localize advertisements to far field HRTFs beyond three meters, andlocalize voice messages above her head. Hal updates Alice's sound userpreferences to indicate her preferences for where to localize binauralsounds. Later, for example, when Alice receives a voice message, thismessage automatically localizes above her head per her sound userpreferences.

FIG. 13 is a computer system or electronic system 1300 in accordancewith an example embodiment. The system includes a handheld portableelectronic device or HPED 1302, a computer or electronic device (such asa server) 1304, a speech and/or non-speech detector 1306, and storage ormemory 1308 that includes audio files in communication with each otherover one or more networks 1310.

The handheld portable electronic device 1302 includes one or morecomponents of computer readable medium (CRM) or memory 1320, a display1322, a processing unit 1324 (such as one or more microprocessors and/ormicrocontrollers), one or more interfaces 1326 (such as a networkinterface, a graphical user interface, a natural language userinterface, a natural user interface, a phone control interface, areality user interface, a kinetic user interface, a touchless userinterface, an augmented reality user interface, and/or an interface thatcombines reality and virtuality), an audio diarization system 1328, asound localization point (SLP) selector 1330, and a digital signalprocessor (DSP) 1332.

The HPED 1302 can communicate with headphones or earphones 1303 thatinclude speakers 1340 or other electronics (such as microphones).

The storage 1308 can include memory or databases that store one or moreof audio files or audio input, SLPs (including other informationassociated with a SLP such as rich media, sound files and images), userprofiles and/or user preferences (such as user preferences for SLPlocations and sound localization preferences), impulse responses andtransfer functions (such as HRTFs, HRIRs, BRIRs, and RIRs), and otherinformation discussed herein.

The network 1310 can include one or more of a cellular network, a publicswitch telephone network, the Internet, a local area network (LAN), awide area network (WAN), a metropolitan area network (MAN), a personalarea network (PAN), home area network (HAM), and other public and/orprivate networks. Additionally, the electronic devices need notcommunicate with each other through a network. As one example,electronic devices can couple together via one or more wires, such as adirect wired-connection. As another example, electronic devices cancommunicate directly through a wireless protocol, such as Bluetooth,near field communication (NFC), or other wireless communicationprotocol.

Electronic device 1304 (shown by way of example as a server) includesone or more components of computer readable medium (CRM) or memory 1360,a processing unit 1364 (such as one or more microprocessors and/ormicrocontrollers), an audio diarization system 1366, an audio convolver1368, and a SLP selector 1370.

The electronic device 1304 communicates with storage or memory 1380 thatstores transfer functions and/or impulse responses (e.g., HRTFs, HRIRs,BRIRs, etc. for multiple users).

The speech and/or non-speech detector 1306 detects speech and/ornon-speech in an audio file or audio input.

FIG. 14 is a computer system or electronic system in accordance with anexample embodiment. The system 1400 includes an electronic device 1402,a server 1404, a database 1406, a wearable electronic device 1408, andan audio segmenter 1410 in communication with each other over one ormore networks 1412.

Electronic device 1402 includes one or more components of computerreadable medium (CRM) or memory 1420, one or more displays 1422, aprocessor or processing unit 1424 (such as one or more microprocessorsand/or microcontrollers), one or more interfaces 1426 (such as a networkinterface, a graphical user interface, a natural language userinterface, a natural user interface, a phone control interface, areality user interface, a kinetic user interface, a touchless userinterface, an augmented reality user interface, and/or an interface thatcombines reality and VR), a SLP predictor and/or recommender 1428,impulse responses (IRs), transfer functions (TFs), and/or SLPs 1430, anintelligent user agent (IUA) and/or intelligent personal assistant (IPA)1432 (also referred to as a virtual assistant), sound hardware 1434, auser profile builder and/or user profile 1436, and a sound localizationsystem (SLS) 1438.

The sound localization system 1438 performs various tasks with regard tomanaging, generating, interpolating, extrapolating, retrieving, storing,and selecting SLPs and can function in coordination with and/or be partof the processing unit and/or DSPs or can incorporate DSPs. These tasksinclude generating audio impulses, generating audio impulse responses ortransfer functions for a person, dividing an area around a head of aperson into zones or areas, determining what SLPs are in a zone or area,mapping SLP locations and information for subsequent retrieval anddisplay, selecting SLPs when a user is at a determined location,selecting sets of SLPs according to circumstantial criteria, generatinguser interfaces with binaural sound information, detecting binauralsound, detecting human speech, isolating voice signals from sound suchas the speech of a person who captures binaural sound by wearingmicrophones at the left and right ear, and/or SLP information, andexecuting one or more other blocks discussed herein. The soundlocalization system can also include a sound convolving application thatconvolves and deconvolves sound according to one or more audio impulseresponses and/or transfer functions based on or in communication withhead tracking.

Server 1404 includes computer readable medium (CRM) or memory 1450, aprocessor or processing unit 1452, and an audio segmentation and/ordiarization system 1454.

By way of example, an intelligent personal assistant or intelligent useragent is a software agent that performs tasks or services for a person,such as organizing and maintaining information (such as emails, calendarevents, files, to-do items, etc.), responding to queries, performingspecific one-time tasks (such as responding to a voice instruction),performing ongoing tasks (such as schedule management and personalhealth management), and providing recommendations. By way of example,these tasks or services can be based on one or more of user input,prediction, activity awareness, location awareness, an ability to accessinformation (including user profile information and online information),user profile information, and other data or information.

The database 1406 stores information discussed herein, such as userprofiles, user preferences, SLPs for users, audio files and audio input,transfer functions and impulse responses for users, etc.

Wearable electronic device 1408 includes computer readable medium (CRM)or memory 1460, one or more displays 1462, a processor or processingunit 1464, one or more interfaces 1466 (such as an interface discussedherein), one or more impulse response data sets, transfer functions, andSLPs 1468, a sound localization point (SLP) selector 1470, userpreferences 1472, a digital signal processor (DSP) 1474, and one or moreof speakers and microphones 1476.

By way of example, the sound hardware 1434 includes a sound card and/ora sound chip. A sound card includes one or more of a digital-to-analog(DAC) converter, an analog-to-digital (ATD) converter, a line-inconnector for an input signal from a sound source, a line-out connector,a hardware audio accelerator providing hardware polyphony, and one ormore digital-signal-processors (DSPs). A sound chip is an integratedcircuit (also known as a “chip”) that produces sound through digital,analog, or mixed-mode electronics and includes electronic devices suchas one or more of an oscillator, envelope controller, sampler, filter,and amplifier.

By way of example, a computer and an electronic device include, but arenot limited to, handheld portable electronic devices (HPEDs), wearableelectronic glasses, watches, wearable electronic devices (WEDs) orwearables, smart earphones or hearables, voice control devices (VCD),network attached storage (NAS), printers and peripheral devices, virtualdevices or emulated devices, portable electronic devices, computingdevices, electronic devices with cellular or mobile phone capabilities,digital cameras, desktop computers, servers, portable computers (such astablet and notebook computers), smartphones, electronic and computergame consoles, home entertainment systems, handheld audio playingdevices (example, handheld devices for downloading and playing music andvideos), appliances (including home appliances), personal digitalassistants (PDAs), electronics and electronic systems in automobiles(including automobile control systems), combinations of these devices,devices with a processor or processing unit and a memory, and otherportable and non-portable electronic devices and systems (such aselectronic devices with a DSP).

The SLP predictor or recommender 1428 predicts, estimates, and/orrecommends events including, but not limited to, switching or changingbetween binaural, mono, and stereo sounds at a future time, changing oraltering binaural sound (such as moving a SLP, reducing a number ofSLPs, eliminating a SLP, adding a SLP, starting transmission or emissionof binaural sound, stopping transmission or emanation of binaural sound,etc.), predicting an action of a user, predicting a location of a user,predicting an event, predicting a desire or want of a user, predicting aquery of a user (such as a query to an intelligent personal assistant),predicting and/or recommending a SLP or RIR/RTF to a user, etc. Thepredictor can also predict user actions or requests in the future (suchas a likelihood that the user or electronic device localizes a type ofsound to a particular SLP). For instance, determinations by a softwareapplication, an electronic device, and/or the user agent can be modeledas a prediction that the user will take an action and/or desire orbenefit from moving or muting an SLP, from delaying the playing of asound, from a switch between binaural, mono, and stereo sounds or achange to binaural sound (such as pausing binaural sound, mutingbinaural sound, reducing or eliminating one or more cues orspatializations or localizations of binaural sound). For example, ananalysis of historic events, personal information, geographic location,and/or the user profile provides a probability and/or likelihood thatthe user will take an action (such as whether the user prefers binauralsound or stereo, or mono sound for a particular location, a particularlistening experience, or a particular communication with another personor an intelligent personal assistant). By way of example, one or morepredictive models execute to predict the probability that a user wouldtake, determine, or desire the action. The predictor can also predictfuture events unrelated to the actions of the user, for example, theprediction of the times, locations, SLP positions, type or quality ofsound, or identities of incoming callers or requests for soundlocalizations to the user.

FIG. 15 is a SLP selector 1500 in an electronic system 1510 inaccordance with an example embodiment. The SLP selector 1500 receivesaudio input, analyzes the audio input, selects one or more SLPs, HRTFs,and/or RIRs for adjusting the audio input, and provides as output theone or more SLP, HRTF and/or RIR selections and/or other informationdiscussed herein.

In addition to the audio input, the SLP selector 1500 can couple to orcommunicate with audio information 1520 and user information 1530.

The SLP selector can receive as input and/or query the OS or othersystem resources to obtain for consideration the audio information 1520.By way of example, this information includes, but is not limited to, oneor more of current time and/or date, user location, positional andorientation information of a user, context of a user, active sound andlocalization information, and other information.

The user information 1530 can include information from one or morestorage devices, memory, databases, or other information sources. By wayof example, this information includes, but is not limited to, one ormore of user preferences, call logs, localization logs, and user contactlists.

Consider an example embodiment of a SLP selector that considers both asound type (or unique audio fingerprint (sound ID)) and one or moresources of the sound in determining a SLP for a sound. The SLP selectorreceives as input a unique segment identification (segment ID) thatdistinguishes for what segment a SLP is being requested. The SLPselector can also receive an identification of a type of sound (soundtype) included in the segment, if known. For example, the SLP selectorreceives a unique sound ID for the segment.

The segment ID allows the SLP selector to look up the input source ofthe segment in a table that lists the segments known by the system andthe source to which the segment belongs. In this example embodiment, thesegment ID is a required argument, and both the sound type and sound IDare optional arguments. If a sound type is not passed to the SLPselector then a determination is made of the sound type or probablesound type based on the sound ID (if known), sound source, analysis ofthe segment or other data, or other methods described herein. The SLPselector returns as output a SLP, HRTF, or RIR designation for thesegment ID passed as the input argument.

In an example embodiment, the SLP selector has access to otherinformation that the SLP selector can consider in order to makelocalization or impulse response selections. The other informationincludes, but is not limited to, the other active SLPs or segmentscurrently localizing or assigned for localizing and the HRTFs or RIRsassigned to them, the current time and date, the user's location, theuser's position in the environment relative to other objects such asmicrophones and speakers and barriers such as those that bear onattenuation and reverberation, the user's context or situationalinformation (such as in a car, driving a car, in a meeting, sleeping, onduty, performing a strenuous or hazardous activity, on publictransportation, has a active head-tracking system, is in a visuallyrendered space such as wearing a head-mounted display, etc.), and otherinformation available to the system.

In addition, the example embodiment has access to memory or storage,such as one or more databases for referencing and/or updating. One suchdatabase is a contact list (for example a user's personal contact list)that includes people and other contact information along with SLPs,HRTFs and/or IRs already designated for convolving the sound of acontact. Another database is a call log or localization log thatincludes a historic archive of segments played to the user, such asvoices and other sounds along with SLPs, HRTFs and/or other IRsprocessed to convolve the sounds or segments, and other informationabout the events when a segment was played or localized to a user.Another database is the user's preference database that can providepreferred SLP designations that the SLP selector can return as output,or take into account when making a designation that compares and weighsmultiple factors.

Records in the databases, such as those mentioned above, can also haveassociated with them a unique sound identifier (sound ID), such as avalue generated from, obtained by, or including a voiceprint, voice-ID,voice recognition service, or other unique voice identifier such as oneproduced by a voice recognition system. For example, a number of MFCCsare extracted from a voice signal to form a model using a GMM algorithm.The model, model identifier, or hash of a model or model file isprocessed as the sound ID. The sound ID can also include a unique soundidentifier for sounds that include or do not include voices, such as avalue generated from, obtained by, or including an acoustic fingerprint,sound signature, sound sample, a hash of a sound file, spectrographicmodel or image, acoustic watermark, or audio based Automatic ContentRecognition (ACR). The segment's supplied or computed sound ID can becompared with or matched with a sound ID from a record in a database inorder to identify or assist to identify a segment's sound type or originas one already known by a database. For example, a sound ID computed fora segment of an incoming voice from an unknown caller is determined tomatch a sound ID associated with the contact labeled as “Jeff” in theuser's contact database. The match is a sufficient indication that theidentity of the caller is Jeff. The SLP selector looks up the HRTFsprocessed in a previous conversation with Jeff, and after assuring thelocalization does not clash with, is not coincident with, or is notfunctionally or otherwise incompatible with other SLPs, returns theHRTFs as output for convolving the segment.

After the SLP selector provides as output the designation of a SLP,HRTF, or other IRs, the SLP selector directs one or more of thedatabases to be updated with the information about the designationinstance. For example, a HRTF is designated for a segment that includesthe voice of a new friend of the user, and the localization log isappended with the identity of the new friend, the HRTF designated, andother call information. The user's contact database is updated with theHRTF as a default SLP for future conversations with the friend. Theuser's preferences are updated to include the knowledge of the HRTFassignment for the friend, the time of day, location, and othercircumstances bearing on his preference.

Consider a number of examples that illustrate the SLP selectordesignating localizations based on various combinations of limited orspecific knowledge.

An example embodiment determines a SLP by considering one or more of asound source, an identity of a voice, a current time of day, callhistory, and the presence of another SLP. Based on this information, theexample embodiment creates a SLP at a location or in a general areaexpected by the user. For example, Bob receives a call at 9:00 A.M. Thecaller and sound type are not determined. The SLP selector consultsBob's localization log and determines that 60% of telephone callsreceived between 8:30 A.M. and 10:00 A.M. are localized to a certainHRTF-1. In response to this determination, the SLP selector outputsHRTF-1 as the designation for the sound of the call. While still on thecall Bob receives a call from the automated weather reporting service.The SLP selector determines from the weather service record in Bob'scontact list that calls from the weather service are set to auto-answerand considers a default localization of HRTF-1. The SLP selectorconsults a list of currently active SLPs and determines that HRTF-1 hasalready been provided to an active convolution process (for a segment ona current telephone call). The SLP selector avoids localizing more thanone segment to one SLP, and so the SLP selector consults Bob'slocalization or call log for an alternative SLP that would not surpriseBob. An examination of the localization log, however, determines thatBob has not localized the weather service voice to other SLPs besidesHRTF-1. The SLP selector calculates a new alternative point for thelocalization of the incoming voice from the weather service by adjustingtwo coordinates of the usual SLP of the weather service (HRTF-1). Thedistance is increased by 2 feet, and the elevation is increased by 15°.The adjusted HRTF is output by the SLP selector, sent to the DSP, andprocessed to convolve the sound of the weather-reporting voice. Bobhears the weather report at a location shifted from the usual locationbut at an adjusted location that is not unexpected.

An example embodiment determines a SLP by considering a context of auser, and weighing a user's call history without knowledge of theidentity of a caller. As an example, Bob receives a call at 9:00 A.Mwhile he is wearing a head-mounted display (HMD). The caller and soundtype are not determined. The SLP selector consults Bob's localizationlog and determines that 60% of telephone calls received between 8:30A.M. and 10:00 A.M. are localized to a certain HRTF-1, and that 70% ofcalls received while Bob's context is “HMD active” are localizedinternally. The SLP selector designates an internalized localization forthe sound of the call.

An example embodiment determines a SLP and RIR by considering a user'sGPS location and position and orientation in a room, and without knowingthe identity of a voice or music type. As an example, Alice receives abroadcast of speech sound, and left and right stereo music segmentswhile she is supine at Jazz Hands, her regular massage spa in herregular room number 202. The speaker in the voice segment and the soundtype of the music are not identified. During her massages, Alice prefersto hear voices emanate at approximately the surface of the 3.5 m highceiling while she is relaxing face up on the massage table. The SLPselector consults Alice's localization log and determines that whenAlice is at the current GPS coordinates (the address of Jazz Hands) shelocalizes music internally and speech at (3 m, 0°, 0°). Based on herlocation and the sound types determined in the segments on the incomingbroadcast, the SLP selector designates the voice segment to localize at(3 m, 0°, 0°) and the left and right music segments to localize instereo. Later, Alice is moved to a massage table beside the wall in adifferent room that has a ceiling height of 2.5 m. The SLP selectordetects or is notified of the event of the location change and retrievesupdated positional information, such as an indication of the new roomdimensions and her position and orientation in the room. The SLPselector adjusts the SLP of the speech segment to a distance of 2 m tomatch the lower ceiling. Due to the new information that a large flatsolid object (a wall) is directly to her left, the SLP selector outputsa designation for an appropriate RTF. The RTF is convolved with thesound of the speech to mimic a reverberation that Alice would hear dueto the close proximate wall if the sound were originating in herphysical environment. Alice continues to hear the stereo music in stereosound without change. She hears the speech sound changed to sound asthough it emanates two meters away, from a ceiling-mounted speaker nearthe wall that is at her left.

An example embodiment determines SLP placements and activations byconsidering a user's head orientation relative to a device and relativeto his body. For example, Bob is in his home office where a personalcomputer (PC) is in front of him on his desk and a smart TV is facinghim on his right. His wearable electronic device (WED) headphones withorientation tracking or head tracking are coupled to his PC and to hisTV. A SLP selector designates the audio sources incoming from his TV totwo “virtual speakers,” a SLP-Left1 and a SLP-Right1 that are located atfixed positions to the left and right of his head relative to his head.When Bob's head faces his PC, the incoming sound sources from his PC webbrowser is assigned by the SLP selector to localize at two “virtualspeakers,” a SLP-Left2 and a SLP-Right2 that are located at fixedpositions to the left and right of his PC relative to his PC. When Bobturns his head or his body in the chair to face away from his PC (suchas to face his TV) the SLP selector is notified or finds updates ofBob's new orientation and the segments incoming from his PC are pausedor muted. Bob hears the TV audio to the left and right of his head, buthe does not hear the PC audio unless he is facing the PC. Bob canmonitor the TV audio while he works on his PC and when he turns to facethe TV the PC audio is silenced until the time that Bob returns his gazetoward the PC. The SLP selector makes determinations of the locationsand activations of the four SLPs according to the audio sources and thelocation and orientation of Bob's head. Bob's IPA speaks an alertnotifying Bob of an impending appointment and the voice segment isconsidered for localization by the SLP selector that then designates alocalization for the voice at the usual SLP coordinate at his leftshoulder relative to his shoulders. When Bob faces the PC, he hears thesound from each of the five SLPs. When he turns his head to face the TV,without moving his body, the SLP selector mutes or pauses the segmentsfrom his web browser, continues to localize the TV segments atHRTF-Left1 and HRTF-Right1, and adjusts the HRTFs for the localizationof the IPA to compensate for the change in Bob's head orientation. Assuch, Bob continues to perceive the voice of the IPA rendered at hisleft shoulder.

An example embodiment determines a SLP location by weighing multiplepossible default designations and by considering a user's locationrelative to a stationary device. In another example, Bob exits his homeoffice, walks to the kitchen, puts some frozen peas in the microwaveoven to defrost, walks back to his desk and continues to work. When thepeas are defrosted ten minutes later, the smart microwave appliancecalls Bob by triggering an alert composed of artificial speech to playon Bob's personal computer (PC). This sound alerts him that themicrowave oven's task is complete. The PC operating system (OS) passesthe sound of the alert to an audio segmenter that determines existenceof a single segment of sound in the sound source. The segment ID of thesegment is passed to the SLP selector, the SLP selector looks up thesegment ID, and finds that the sound source is the smart applianceapplication that communicates with the microwave. The SLP selectorconsults the user preferences, contact list, and localization historybut finds no record of localizing the smart appliance sounds or recordof the sound ID of the voice in the alert. The SLP selector discoversthat a default SLP specified by the smart appliance application existsfor sounds triggered by the smart appliance application. The default SLPis fixed at six inches in front of the microwave door with respect tothe microwave. The SLP selector translates the default SLP location sixinches from the microwave in the kitchen to a location relative to Bob'shead located in Bob's office fifteen meters away. The SLP selectorconfirms that the proposed SLP fifteen meters away from Bob's head doesnot conflict with another current localization. The SLP selector returnsthe SLP with a translated position as output for processing by the audioconvolver to render the speech alert to Bob. Bob in the home officehears a voice in the kitchen speak, “Your food is no longer frozen.”

The SLP selector output may result in no change of a segment's sound. Incalculating a SLP that provides a familiar experience to a user, anexample embodiment can decide not to localize a segment of a known type,even if default SLPs exist for the sound type. The example embodimentcan also weigh a user's context with safety regulations, can restrict alocalization in consideration of a user's environment, and canprioritize multiple contexts. For example, Bob is playing a game thatincludes binaural sound on his HPED while his self-driving car driveshim through the city. The sounds from the game are not passed to anaudio segmentation system or audio diarization system so the game'ssounds exist to the HPED OS as a single segment of two-channel binauralsound. The OS passes the segment ID for the sounds from the game to theSLP selector. The SLP selector is unable to find additional localizationinformation or references associated with the sound source or segment,such as a sound type, sound ID, or default SLP specified by the gameapplication. Bob has not previously modified the localization of thegame sound through his HPED SLS, and no records of such an event exist.If the SLP selector designated a new SLP for the game sound, Bob wouldfind the new location unfamiliar. The SLP selector then has no directiveto localize the game sound associated with the segment ID, and thebinaural game sound is output to Bob without convolution by the SLS andthis results in a consistent experience for Bob. Later in the drive, thecar switches to human assisted mode in an area with road construction.The SLP selector detects or is notified of the change in Bob's contextfrom “car passenger” to “car driver.” As required by safety regulationin Bob's area, the SLP selector adjusts active sound segments to outputas internalized sound. The sound of the game is switched from binauralsound that localizes to Bob to mono sound that does not externallylocalize to Bob. Later in the drive when externalized sound is permittedin the car, Bob calls Alice. The SLP selector looks up the SLP assignedby default to segments that include the voice of Alice. The SLP selectordetermines that the default SLP for Alice's voice is beyond theperimeter of the interior of the car. So as not to provide an unexpectedlocalization, the SLP selector reduces the distance coordinate of thedefault SLP to a value within the perimeter of the interior of the car.The azimuth and elevation coordinates are not altered. The SLP selectoris aware that Bob's context is still inside a car. So as to provide afamiliar audio experience, the SLP selector designates a RIR forconvolving Alice's voice segment and Bob hears Alice's voice with areverberation matching the acoustic characteristics of the car.

This example embodiment can select SLPs and RIRs by considering both auser's physical location and virtual location. For example, Bob parksthe car and turns off the engine during his conversation with Alice andcontinues to localize her voice at a SLP within the perimeter of thecar. Her voice is convolved with RIRs that match the acoustic qualitiesof her voice to the acoustic qualities that her voice would exhibit toBob if Alice were in the car together with him. Alice asks Bob to meether at a virtual place called BarVR, a visually rendered virtual spacewith a ceiling height of ten meters. Bob dons a HMD, virtually navigatesto and enters BarVR while sitting in his car, and sees with the HMDdisplay the visual representation of Alice in BarVR. Bob selects thevisual representation of Alice and issues a command to open an audioconnection, and this command initiates a binaural telephone call toAlice. Alice accepts the call request and greets Bob with, “Hi Bob, it'sso much more comfortable in here!” The telephony software applicationthat has established the call, streams Alice's greeting to Bob's device.An audio segmenter begins to diarize the incoming sound stream fromAlice and identifies and establishes a single voice segment. The voicerecognition system calculates a sound ID for the voice. The segment IDand sound ID are submitted to a SLP selector. The SLP selector looks upthe segment ID and finds that the segment's source is the telephonyapplication. The SLP selector looks up the sound ID and finds that itmatches the voice of Alice in Bob's contact database. The SLP selectorfinds the default SLP associated with Alice in the contact record forAlice in Bob's contact database. The SLP selector also determines that afirst context of Bob is “car passenger” and a second context for Bob is“HMD active.” Although the default SLP for Alice has a distancecoordinate that is greater than the diameter of the interior of the car,the SLP selector recognizes or determines that Bob's second contextsupersedes the first context. Accordingly, the SLP selector returns thecoordinates of the default localization for Alice retrieved from Bob'scontact database. The voice of Alice is convolved to a SLP that Bobexpects for Alice during telephony. Bob hears the voice of Alice from apoint that is farther away than the car doors around Bob. This point oflocalization is not unexpected by Bob because it is consistent with theenvironment he sees with the HMD. Hence, the distance of the voice ofAlice from Bob is not uncomfortable or disorienting for Bob. AlthoughBob is located inside his car, he perceives himself within the room ofBarVR and the placement of the voice of Alice makes sense to him.Additionally, the SLP selector determines to convolve the voice of Alicewith RIRs. Convolving the voice causes Alice's voice to sound to Bob asif both Bob and Alice are in the BarVR with a ceiling height that is tenmeters high.

An example embodiment determines a SLP location by considering theprobability of sound arrival times, a user's location, and the nature ofthe location. For example, Bob is subscribed to a binaural audio tweetservice called Floating Head. At unpredicted times throughout the dayand night, the Floating Head client application executing on his HPEDreceives binaural audio messages from the service and plays them. BeforeBob hears the audio files, they are processed by the audio segmenterthat identifies sound types and assigns segment IDs. The segment IDs andsound types are passed to the SLP selector. The SLP selector consultsBob's localization log and learns that usually sounds that come from theFloating Head client application are localized two meters from Bob. Thelocalization log data also shows that Bob is usually at home when hereceives the sounds. One day, Bob is at the airport and receives a soundfrom Floating Head. The SLP selector retrieves data from Bob's phoneindicating that Bob is at the airport, a crowded place. Based on Bob'slocation, the SLP selector makes a determination to assign a SLP that isone meter from Bob. The determination is made so that Bob does notexperience the unexpected Floating Head voice in the crowded place at alocalization where he might mistake the binaural sound voice for actualvoices from the people around him.

FIG. 16 is a method to designate a sound localization point (SLP) to atelephone call in accordance with an example embodiment.

Block 1600 states establish a telephony connection.

For example, a user places or receives a telephone call.

Block 1610 states segment audio input in the telephone call.

For example, an audio diarization system or other system discussedherein segments audio input in the telephone call. For instance, audioinput transmitted to or received by a user is segmented.

Block 1620 makes a determination as to whether a segment has adesignated SLP. If the answer to this determination is “no” then flowproceeds to block 1630 that states designate SLP(s) to the segment. Ifthe answer to this determination is “yes” then flow proceeds to block1640 that states continue playing, segmenting, and/or convolving theaudio input.

Block 1650 makes a determination as to whether another segment isdetected. If the answer to this determination is “yes” then flowproceeds back to block 1620. If the answer to this determination is “no”then flow proceeds back to block 1640.

Consider an example in which Alice commences a telephone call withCharlie. A sound localization system (SLS) retrieves a preferred SLP forCharlie and provides Charlie's voice to Alice at the preferred SLP.During the telephone call, Charlie's friend (Bob) says “Hello Alice.”The system recognizes a new or different voice from Charlie, retrieves apreferred SLP for Bob, and provides Bob's voice to Alice at a SLP thatis different than the SLP of Charlie.

Consider an example in which Alice commences a telephone call with Bob.The audio diarization system segments Bob's voice and externallylocalizes his voice to a designated SLP obtained from Alice's userpreferences. During the call, Alice's intelligent personal assistant(Hal) talks to Alice. The audio diarization system identifies Hal as anadditional segment, retrieves a SLP for Hal, and convolves Hal's voiceso it externally localizes to a designated SLP obtained from Alice'suser preferences.

The SLS, SLP selector, or other application can consider one or morefactors in selecting a SLP and determining where the place a sound for auser. By way of example, these factors can include one or more ofcurrent time, location, position, orientation, the location and identityof other localized sounds, the current context of a user, identity of asoftware application, identity of a process making a request, identityof a voice or person, identity of an electronic device, and otherfactors discussed herein. Furthermore, these factors can be weightedequally or weighted differently in selecting a SLP.

Example embodiments include instances in which audio input is diarizedor segmented and instances in which the audio input is not diarized orsegmented.

Consider an example in which sounds from a software application passthru or bypass an audio diarization system without being segmented. Forexample, the software application (or other sound source) provides soundwith a known segmentation. Alternatively, the user may not want thesound segmented, or the sound may be known to have a single voice or asingle sound, and segmentation is not necessary.

Example embodiments are not limited to HRTFs but also include othersound transfer functions and sound impulse responses including, but notlimited to, head related impulse responses (HRIRs), room transferfunctions (RTFs), room impulse responses (RIRs), binaural room impulseresponses (BRIRs), binaural room transfer functions (BRTFs), headphonetransfer functions (HPTFs), etc.

As used herein, an “electronic call” or a “telephone call” is aconnection over a wired and/or wireless network between a calling personor user and a called person or user. Telephone calls can use landlines,mobile phones, satellite phones, HPEDs, computers, and other portableand non-portable electronic devices. Further, telephone calls can beplaced through one or more of a public switched telephone network, theinternet, and various types of networks (such as Wide Area Networks orWANs, Local Area Networks or LANs, Personal Area Networks or PANs,Campus Area Networks or CANs, etc.). Telephone calls include other typesof telephony including Voice over Internet Protocol (VoIP) calls,internet telephone calls, in-game calls, etc.

As used herein, “familiar” means generally know or easy to recognizebecause of being seen or heard before.

As used herein, “proximate” means near. For example, a sound thatlocalizes proximate to a person occurs between one foot to five feetfrom the person.

As used herein, a “sound localization point” or “SLP” is a locationwhere a listener localizes sound. A SLP can be internal (such asmonaural sound that localizes inside a head of a listener), or a SLP canbe external (such as binaural sound that externally localizes to a pointor an area that is away from but proximate to the person or away frombut not near the person). A SLP can be a single point such as onedefined by a single pair of HRTFs or a SLP can be a zone or shape orvolume or general area. Further, in some instances, multiple impulseresponses or transfer functions can be processed to convolve sounds orsegments to a place within the boundary of the SLP. In some instances, aSLP may not have access to a particular HRTF necessary to localize soundat the SLP for a particular user, or a particular HRTF may not have beencreated. A SLP may not require a HRTF in order to localize sound for auser, such as an internalized SLP, or a SLP may be rendered by adjustingan ITD and/or ILD or other human audial cues.

As used herein, a “user” can be a person (i.e., a human being), anintelligent personal assistant (IPA), a user agent (including anintelligent user agent and a machine learning agent), a process, acomputer system, a server, a software program, hardware, an avatar, oran electronic device. A user can also have a name, such as Alice, Bob,Chip, Hal, and other names as described in some example embodiments. Asused herein a “caller” or “party” can be a user.

As used herein, a “user agent” is software that acts on behalf of auser. User agents include, but are not limited to, one or more ofintelligent user agents and/or intelligent electronic personalassistants (IPAs, software agents, and/or assistants that use learning,reasoning and/or artificial intelligence), multi-agent systems (pluralagents that communicate with each other), mobile agents (agents thatmove execution to different processors), autonomous agents (agents thatmodify processes to achieve an objective), and distributed agents(agents that execute on physically distinct electronic devices).

Examples herein can take place in physical spaces, in computer renderedspaces (such as computer games or VR), in partially computer renderedspaces (AR), and in combinations thereof.

The processor unit includes a processor (such as a central processingunit, CPU, microprocessor, microcontrollers, field programmable gatearrays (FPGA), application-specific integrated circuits (ASIC), etc.)for controlling the overall operation of memory (such as random accessmemory (RAM) for temporary data storage, read only memory (ROM) forpermanent data storage, and firmware). The processing unit and DSPcommunicate with each other and memory and perform operations and tasksthat implement one or more blocks of the flow diagrams discussed herein.The memory, for example, stores applications, data, programs, algorithms(including software to implement or assist in implementing exampleembodiments) and other data.

Consider an example embodiment in which the SLS or portions of the SLSinclude an integrated circuit FPGA that is specifically customized,designed, configured, or wired to execute one or more blocks discussedherein. For example, the FPGA includes one or more programmable logicblocks that are wired together or configured to execute combinationalfunctions for the SLS.

Consider an example in which the SLS or portions of the SLS include anintegrated circuit or ASIC that is specifically customized, designed, orconfigured to execute one or more blocks discussed herein. For example,the ASIC has customized gate arrangements for the SLS. The ASIC can alsoinclude microprocessors and memory blocks (such as being a SoC(system-on-chip) designed with special functionality to executefunctions of the SLS).

Consider an example in which the SLS or portions of the SLS include oneor more integrated circuits that are specifically customized, designed,or configured to execute one or more blocks discussed herein. Forexample, the electronic devices include a specialized or customprocessor or microprocessor or semiconductor intellectual property (SIP)core or digital signal processor (DSP) with a hardware architectureoptimized for convolving sound and executing one or more exampleembodiments.

Consider an example in which the HPED includes a customized or dedicatedDSP that executes one or more blocks discussed herein. Such a DSP has abetter power performance or power efficiency compared to ageneral-purpose microprocessor and is more suitable for a HPED, such asa smartphone, due to power consumption constraints of the HPED. The DSPcan also include a specialized hardware architecture, such as a specialor specialized memory architecture to simultaneously fetch or pre-fetchmultiple data and/or instructions concurrently to increase executionspeed and sound processing efficiency. By way of example, streamingsound data (such as sound data in a telephone call or software gameapplication) is processed and convolved with a specialized memoryarchitecture (such as the Harvard architecture or the Modified vonNeumann architecture). The DSP can also provide a lower-cost solutioncompared to a general-purpose microprocessor that executes digitalsignal processing and convolving algorithms. The DSP can also providefunctions as an application processor or microcontroller.

Consider an example in which a customized DSP includes one or morespecial instruction sets for multiply-accumulate operations (MACoperations), such as convolving with transfer functions and/or impulseresponses (such as HRTFs, HRIRs, BRIRs, et al.), executing Fast FourierTransforms (FFTs), executing finite impulse response (FIR) filtering,and executing instructions to increase parallelism.

Consider an example in which the DSP includes the SLP selector and/orthe audio diarization system. For example, the SLP selector, audiodiarization system, and/or the DSP are integrated onto a singleintegrated circuit die or integrated onto multiple dies in a single chippackage to expedite binaural sound processing.

Consider an example in which the DSP additionally includes the voicerecognition system and/or acoustic fingerprint system. For example, theaudio diarization system, acoustic fingerprint system, and a MFCC/GMManalyzer and/or the DSP are integrated onto a single integrated circuitdie or integrated onto multiple dies in a single chip package toexpedite binaural sound processing

Consider another example in which HRTFs (or other transfer functions orimpulse responses) are stored or cached in the DSP memory to expeditebinaural sound processing.

Consider an example in which a smartphone or other HPED includes one ormore dedicated sound DSPs (or dedicated DSPs for sound processing, imageprocessing, and/or video processing). The DSPs execute instructions toconvolve sound and display locations of the SLPs of the sound on a userinterface of the HPED. Further, the DSPs simultaneously convolvemultiple SLPs to a user. These SLPs can be moving with respect to theface of the user so the DSPs convolve multiple different sound signalsand sources with HRTFs that are continually, continuously, or rapidlychanging.

Example embodiments are not limited to a particular type of audio systemthat segments sound, diarizes sound, performs speech recognition,performs speech and/or voice identification, performs soundidentification, and performs other tasks with example embodimentsdiscussed herein. By way of example, such an audio system can includeone or more of an audio diarization system, a voice and/or speechrecognition system, a speaker diarization system, a speech and/or soundsegmentation system, and other audio systems in accordance with exampleembodiments.

In some example embodiments, the methods illustrated herein and data andinstructions associated therewith, are stored in respective storagedevices that are implemented as computer-readable and/ormachine-readable storage media, physical or tangible media, and/ornon-transitory storage media. These storage media include differentforms of memory including semiconductor memory devices such as DRAM, orSRAM, Erasable and Programmable Read-Only Memories (EPROMs),Electrically Erasable and Programmable Read-Only Memories (EEPROMs) andflash memories; magnetic disks such as fixed and removable disks; othermagnetic media including tape; optical media such as Compact Disks (CDs)or Digital Versatile Disks (DVDs). Note that the instructions of thesoftware discussed above can be provided on computer-readable ormachine-readable storage medium, or alternatively, can be provided onmultiple computer-readable or machine-readable storage media distributedin a large system having possibly plural nodes. Such computer-readableor machine-readable medium or media is (are) considered to be part of anarticle (or article of manufacture). An article or article ofmanufacture can refer to a manufactured single component or multiplecomponents.

Blocks and/or methods discussed herein can be executed and/or made by auser, a user agent (including machine learning agents and intelligentuser agents), a software application, an electronic device, a computer,firmware, hardware, a process, a computer system, and/or an intelligentpersonal assistant. Furthermore, blocks and/or methods discussed hereincan be executed automatically with or without instruction from a user.

The methods in accordance with example embodiments are provided asexamples, and examples from one method should not be construed to limitexamples from another method. Tables and other information show exampledata and example structures; other data and other database structurescan be implemented with example embodiments. Further, methods discussedwithin different figures can be added to or exchanged with methods inother figures. Further yet, specific numerical data values (such asspecific quantities, numbers, categories, etc.) or other specificinformation should be interpreted as illustrative for discussing exampleembodiments. Such specific information is not provided to limit exampleembodiments.

1.-20. (canceled)
 21. A method comprising: determining, by one or moreelectronic devices in a computer system and for a person to a telephonecall, a familiar sound localization point (SLP) by analyzing SLPs inprior telephone calls where voices in the prior telephone callsexternally localized as binaural sound to the person; convolving, by theone or more electronic devices in the computer system, a voice of aparty in the telephone call with head related transfer functions (HRTFs)so the voice externally localizes as binaural sound from the familiarSLP that is external to the person and at a far field distance from theperson; and providing, by the one or more electronic devices in thecomputer system, the voice in the binaural sound to the person so thevoice externally localizes from the familiar SLP that is external to theperson and at the far field distance from the person.
 22. The method ofclaim 21, further comprising: convolving, by the one or more electronicdevices in the computer system, voices of two different people in thetelephone call with HRTFs having spherical coordinates that differ by60° azimuth.
 23. The method of claim 21, further comprising: receiving,during the telephone call, a verbal request from the person to move thevoice from externally localizing as the binaural sound at the familiarSLP to internally localizing as stereo sound or mono sound inside a headof the person; and moving, by the one or more electronic devices in thecomputer system and in response to the verbal request, the voice fromexternally localizing at the familiar SLP to internally localizinginside the head of the person.
 24. The method of claim 21, furthercomprising: segmenting, by the one or more electronic devices in thecomputer system, voices during the telephone call so one of the voicesinternally localizes inside a head of the person as mono or stereo soundand another one of the voices externally localizes to the person as thebinaural sound to the familiar SLP.
 25. The method of claim 21, furthercomprising: prefetching and caching, by the one or more electronicdevices in the computer system and before the telephone call commences,the HRTFs in order to increase execution speed of convolving the voice.26. The method of claim 21, further comprising: assigning the HRTFs to atelephone number; storing, in memory of the one or more electronicdevices in the computer system, the telephone number and the HRTFsassigned to the telephone number; and retrieving the HRTFs from thememory upon identifying the telephone number of a caller.
 27. The methodof claim 21 further comprising: expediting convolution of the voice bycaching the HRTFs in memory of a digital signal processor (DSP)convolving the voice.
 28. A method to convolve a voice in a telephonecall to an external sound localization point (SLP) that is familiar to auser, the method comprising: receiving, at a wearable electronic device(WED), the telephone call that will externally localize to the user asbinaural sound; analyzing, by the WED, SLPs in prior telephone callswhere voices of the prior telephone calls externally localized as thebinaural sound to the user; determining, by the WED and based onanalysis of the SLPs of the prior telephone calls, a preferred SLP thatis familiar to the user where the user previously localized the voicesin the prior telephone calls; and processing, with a processor in theWED, the voice in the telephone call so the voice externally localizesto the user at the preferred SLP that is familiar to the user, whereinthe preferred SLP is at a far field distance from the user.
 29. Themethod according to claim 28 further comprising: storing, in memory ofthe WED, the preferred SLP where the user desires to localize the voicesin the telephone calls, wherein the WED is one of a head mounted display(HMD) and electronic glasses.
 30. The method according to claim 28further comprising: prefetching, by the WED, head-related transferfunctions (HRTFs) that are processed with the voice in order to increaseexecution speed of processing the voice in the telephone call into thebinaural sound.
 31. The method according to claim 28 further comprising:receiving, at the WED, a telephone call from an unknown telephonenumber; and processing, with the processor, a voice of a caller from theunknown telephone number to a SLP that is designated for unknowncallers.
 32. The method according to claim 28 further comprising:storing, in memory of the WED, historic information about telephonecalls that is consulted by the WED to determine where to localize thevoice in the telephone call, wherein the historic information includestelephone numbers, SLPs for the telephone numbers, and head-relatedtransfer functions (HRTFs) having coordinates that correspond to theSLPs for the telephone numbers.
 33. The method according to claim 28further comprising: storing, in memory of the WED, user preferences thatinclude locations in spherical coordinates where the user previouslyexternally localized the voices in the prior telephone calls, whereinthe WED is one of a head mounted display (HMD) and electronic glasses.34. The method according to claim 28 further comprising: assigning, bythe WED, head-related transfer functions (HRTFs) to telephone numbers;determining, by the WED, a telephone number of an incoming telephonecall; and selecting, by the WED, a pair of the HRTFs that are assignedto the telephone number of the incoming call for processing the voice.35. The method according to claim 28 further comprising: caching, inmemory of the WED, head-related transfer functions (HRTFs) that processthe voice in order to increase execution speed of processing the voicein the telephone call to the user.
 36. A wearable electronic device(WED) that selects where to localize voices in telephone calls asbinaural sound to a user, the WED comprising: a memory that storestelephone numbers of people, sound localization points (SLPs) for thetelephone numbers, head-related transfer functions (HRTFs) of the userthat correspond to the SLPs for the telephone numbers, and instructionsthat when executed retrieve from the memory a SLP for a telephone numberof the incoming telephone call and retrieve from the memory a pair ofHRTFs that correspond to the SLP for the telephone number; and a digitalsignal processor (DSP) that receives the pair of HRTFs and convolves avoice of a caller of the incoming telephone call with the pair of HRTFsso the voice of the caller externally localizes as the binaural sound tothe user at the SLP for the telephone number, wherein the SLP is a farfield distance from the user.
 37. The WED of claim 36, wherein thememory stores a table that includes the telephone number, the SLP forthe telephone number in spherical coordinates, and the pair of HRTFsthat correspond to the SLP for the telephone number.
 38. The WED ofclaim 36, where different pairs of HRTFs are assigned to differenttelephone numbers and are stored in the memory as user preferences forwhere the user prefers to externally localize voices as the binauralsound in telephone calls.
 39. The WED of claim 36 further comprising: aprocessor that executes instructions to predict where the user prefersto localize the voice in the incoming telephone call based on previousSLPs where the user already localized voices in previous telephone callsand to cache the pair of HRTFs to expedite binaural sound processing.40. The WED of claim 36, wherein the DSP includes a specialized hardwarearchitecture to increase execution speed of processing sound for thetelephone call by prefetching and caching the pair of HRTFs.